解决Linux:No route to host
程序员文章站
2024-03-13 23:26:10
...
在VPS上面配置了某分布式服务,死活跑不起来,该配置的都配置了,真是见鬼了。日志里面很多:
No route to host
但是,我能ping通,为了排除是程序自身原因,只好使用telnet命令测试是否能够连通。
yum update
yum -y install telnet
telnet x.x.x.x 1111
输出结果:
Trying x.x.x.x...
telnet: connect to address x.x.x.x: No route to host
解决方案:
以下命令已经执行了,端口已经放行了啊,为什么?
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
网上爬来爬去,终于知道原因了。
错误的:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:512]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1111 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
正确的:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:512]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1111 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
结论(全干货,因为真不懂iptables):
端口放行条目,请放在下列条目之前,然后修改后,重启防火墙,一切OK了。
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
转载于:https://my.oschina.net/vright/blog/842685
推荐阅读
-
linux上的mysql报Table'xxx'doesn'texist的错误解决方法_MySQL
-
无证程序员被拘留后――linux能正常运行的程序,php系统调用时却不能运行!解决方案
-
Oracle Enterprise Linux 5安装Oracle 10g碰到的若干问题及解决方法
-
Linux 系统下MySQL连接的套接字出错问题解决
-
Red Hat Linux 9上安装MYSQL“mysqld已死,但是subsys被锁”的解决方案
-
Linux安装Oracle中文乱码的解决
-
PHP+++linux不能访问解决思路
-
linux下php中找不到php配置文件php.ini的解决方法
-
linux - PHP单点登录哪个的解决方案比较好点
-
Linux下安装完Oracle 11g后使用sqlplus出现乱码解决