- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
拜托,有人帮我解决这个问题!到目前为止,我真的挣扎了几个小时。不知道怎么办了,翻遍了每一页,还是没有解决办法。
我有一个监听端口 443 (https - TCP) 的 Python 脚本。它通过此端口接收 JSON POST 消息。问题是它没有从外部主机接收任何东西,只从它自己那里接收。我的意思是,当我从外部主机使用 POSTMAN 模拟 POST 时,它永远不会回答:
(我用“y.y.y.y”屏蔽了我的服务器 IP,用“xxxx”屏蔽了我脚本中的 token )
但是当我从我自己的服务器内部发送完全相同的东西时,它工作得很好。从我自己的服务器内部发送的代码:
[root@rrpump bot]# curl -v -k -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
> "update_id":10000,
> "message":{
> "date":1441645532,
> "chat":{
> "last_name":"Test Lastname",
> "id":1111111,
> "type": "private",
> "first_name":"Test Firstname",
> "username":"Testusername"
> },
> "message_id":1365,
> "from":{
> "last_name":"Test Lastname",
> "id":1111111,
> "first_name":"Test Firstname",
> "username":"Testusername"
> },
> "text":"/start"
> }
> }' "https://y.y.y.y/xxxx"
成功响应:
* About to connect() to y.y.y.y port 443 (#0)
* Trying y.y.y.y...
* Connected to y.y.y.y (y.y.y.y) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=y.y.y.y 1,O=Example Brooklyn Company,L=Brooklyn,ST=New York,C=US
* start date: Mar 06 13:54:03 2018 GMT
* expire date: Mar 06 13:54:03 2019 GMT
* common name: y.y.y.y
* issuer: CN=y.y.y.y,O=Example Brooklyn Company,L=Brooklyn,ST=New York,C=US
> POST /xxxx HTTP/1.1
> User-Agent: curl/7.29.0
> Host: y.y.y.y
> Accept: */*
> Content-Type: application/json
> Cache-Control: no-cache
> Content-Length: 392
>
* upload completely sent off: 392 out of 392 bytes
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: WebhookHandler/1.0 Python/3.6.4
< Date: Tue, 06 Mar 2018 16:52:55 GMT
<
* Closing connection 0
已经检查过它是否真正监听那个端口:
[root@rrpump bot]# lsof -i:443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3.6 30644 root 8u IPv4 2785755157 0t0 TCP *:https (LISTEN)
也已经检查了 iptables(最后的“ACCEPT”行):
[root@rrpump bot]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
all -- anywhere anywhere
tcp -- anywhere anywhere
tcp -- anywhere anywhere tcp dpt:pcsync-https
ACCEPT tcp -- anywhere anywhere tcp dpt:pcsync-https
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
防火墙也被禁用:
[root@rrpump bot]# firewall-cmd --permanent --add-port=443/tcp
FirewallD is not running
我在美国托管 VPS 服务器 CENTOS 7 64 位上运行它。我忘了在这里检查什么??!
最佳答案
在 iptables 规则中,您在脚本的 accept
规则之前有 reject
规则。它们从未被使用过,因为它们的检查顺序与 iptables 列出它们的顺序相同。所以内核首先找到匹配的 reject
规则。您必须将 reject
规则移动到表的末尾,或者将您的规则移动到顶部(使用 iptables -I
插入它们而不是通过 iptables -A
)。或删除reject
规则,并将输入链的默认策略设置为reject
或drop
)。
另外请记住,内核级别的所有表总是有一些规则(至少是默认策略)。因此,通过禁用某些系统守护进程,您不一定会让您的主机对所有连接都完全开放。如果不确定,请始终引用 iptables --list
。
哦,还有一个基于文件 /etc/hosts.allow
和 /etc/hosts.deny
的内容接受/拒绝 TCP 连接的旧解决方案。请检查一个是否允许与 443 的连接,另一个是否被拒绝。
关于python - 无法从外部主机在 TCP 端口建立连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49139232/
我通过 spring ioc 编写了一些 Rest 应用程序。但我无法解决这个问题。这是我的异常(exception): org.springframework.beans.factory.BeanC
我对 TestNG、Spring 框架等完全陌生,我正在尝试使用注释 @Value通过 @Configuration 访问配置文件注释。 我在这里想要实现的目标是让控制台从配置文件中写出“hi”,通过
为此工作了几个小时。我完全被难住了。 这是 CS113 的实验室。 如果用户在程序(二进制计算器)结束时选择继续,我们需要使用 goto 语句来到达程序的顶部。 但是,我们还需要释放所有分配的内存。
我正在尝试使用 ffmpeg 库构建一个小的 C 程序。但是我什至无法使用 avformat_open_input() 打开音频文件设置检查错误代码的函数后,我得到以下输出: Error code:
使用 Spring Initializer 创建一个简单的 Spring boot。我只在可用选项下选择 DevTools。 创建项目后,无需对其进行任何更改,即可正常运行程序。 现在,当我尝试在项目
所以我只是在 Mac OS X 中通过 brew 安装了 qt。但是它无法链接它。当我尝试运行 brew link qt 或 brew link --overwrite qt 我得到以下信息: ton
我在提交和 pull 时遇到了问题:在提交的 IDE 中,我看到: warning not all local changes may be shown due to an error: unable
我跑 man gcc | grep "-L" 我明白了 Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more inf
我有一段代码,旨在接收任何 URL 并将其从网络上撕下来。到目前为止,它运行良好,直到有人给了它这个 URL: http://www.aspensurgical.com/static/images/a
在过去的 5 个小时里,我一直在尝试在我的服务器上设置 WireGuard,但在完成所有设置后,我无法 ping IP 或解析域。 下面是服务器配置 [Interface] Address = 10.
我正在尝试在 GitLab 中 fork 我的一个私有(private)项目,但是当我按下 fork 按钮时,我会收到以下信息: No available namespaces to fork the
我这里遇到了一些问题。我是 node.js 和 Rest API 的新手,但我正在尝试自学。我制作了 REST API,使用 MongoDB 与我的数据库进行通信,我使用 Postman 来测试我的路
下面的代码在控制台中给出以下消息: Uncaught DOMException: Failed to execute 'appendChild' on 'Node': The new child el
我正在尝试调用一个新端点来显示数据,我意识到在上一组有效的数据中,它在数据周围用一对额外的“[]”括号进行控制台,我认为这就是问题是,而新端点不会以我使用数据的方式产生它! 这是 NgFor 失败的原
我正在尝试将我的 Symfony2 应用程序部署到我的 Azure Web 应用程序,但遇到了一些麻烦。 推送到远程时,我在终端中收到以下消息 remote: Updating branch 'mas
Minikube已启动并正在运行,没有任何错误,但是我无法 curl IP。我在这里遵循:https://docs.traefik.io/user-guide/kubernetes/,似乎没有提到关闭
每当我尝试docker组成任何项目时,都会出现以下错误。 我尝试过有和没有sudo 我在这台机器上只有这个问题。我可以在Mac和Amazon WorkSpace上运行相同的容器。 (myslabs)
我正在尝试 pip install stanza 并收到此消息: ERROR: No matching distribution found for torch>=1.3.0 (from stanza
DNS 解析看起来不错,但我无法 ping 我的服务。可能是什么原因? 来自集群中的另一个 Pod: $ ping backend PING backend.default.svc.cluster.l
我正在使用Hibernate 4 + Spring MVC 4当我开始 Apache Tomcat Server 8我收到此错误: Error creating bean with name 'wel
我是一名优秀的程序员,十分优秀!