两台linux服务器端口不通怎么解决

两台linux服务器端口不通怎么解决,第1张

准备环境

启动一个web服务器,提供端口.

?

1

2

[wyq@localhost ~]$ python -m SimpleHTTPServer 8080

Serving HTTP on 0.0.0.0 port 8080 ...

用其它web服务器提供端口也一样,由于python比较方便,这里就用它

1、使用telnet判断

telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet.

用法: telnet ip port

1)先用telnet连接不存在的端口

?

1

2

3

[root@localhost ~]# telnet 10.0.250.3 80

Trying 10.0.250.3...

telnet: connect to address 10.0.250.3: Connection refused #直接提示连接被拒绝

2)再连接存在的端口

?

1

2

3

4

5

6

7

8

[root@localhost ~]# telnet localhost 22

Trying ::1...

Connected to localhost. #看到Connected就连接成功了

Escape character is '^]'.

SSH-2.0-OpenSSH_5.3

a

Protocol mismatch.

Connection closed by foreign host.

2、使用ssh判断

ssh是linux的标准配置并且最常用,可以用来判断端口吗?

用法: ssh -v -p port username@ip

-v 调试模式(会打印日志).

-p 指定端口

username可以随意

1)连接不存在端口

?

1

2

3

4

5

6

7

8

9

[root@localhost ~]# ssh 10.0.250.3 -p 80

ssh: connect to host 10.0.250.3 port 80: Connection refused

[root@localhost ~]# ssh 10.0.250.3 -p 80 -v

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Applying options for *

debug1: Connecting to 10.0.250.3 [10.0.250.3] port 80.

debug1: connect to address 10.0.250.3 port 80: Connection refused

ssh: connect to host 10.0.250.3 port 80: Connection refused

2)连接存在的端口

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[root@localhost ~]# ssh ... -p

a

^]

^C

[root@localhost ~]# ssh ... -p -v

OpenSSH_.p, OpenSSL ..e-fips Feb

debug: Reading configuration data /etc/ssh/ssh_config

debug: Applying options for *

debug: Connecting to ... [...] port .

debug: Connection established.

debug: permanently_set_uid: /

debug: identity file /root/.ssh/identity type -

debug: identity file /root/.ssh/identity-cert type -

debug: identity file /root/.ssh/id_rsa type -

debug: identity file /root/.ssh/id_rsa-cert type -

debug: identity file /root/.ssh/id_dsa type -

debug: identity file /root/.ssh/id_dsa-cert type -

a

^C

不用-v选项也可以咯

3、使用wget判断

wget是linux下的下载工具,需要先安装.

用法: wget ip:port

1)连接不存在的端口

?

1

2

3

[root@localhost ~]# wget ...:

---- ::-- http://.../

Connecting to ...:... failed: Connection refused.

2)连接存在的端口

?

1

2

3

4

[root@localhost ~]# wget ...:

---- ::-- http://...:/

Connecting to ...:... connected.

HTTP request sent, awaiting response...

4、使用端口扫描工具

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

[root@localhost ~]# nmap ... -p

Starting Nmap . ( http://nmap.org ) at -- : CST

Nmap scan report for ...

Host is up (.s latency).

PORT STATE SERVICE

/tcp closed http

MAC Address: B:A::CF:FD:D (Unknown)

Nmap done: IP address ( host up) scanned in . seconds

[root@localhost ~]# nmap ... -p

Starting Nmap . ( http://nmap.org ) at -- : CST

Nmap scan report for ...

Host is up (.s latency).

PORT STATE SERVICE

/tcp open http-proxy

MAC Address: B:A::CF:FD:D (Unknown)

Nmap done: IP address ( host up) scanned in . seconds

[root@localhost ~]# nmap ...

Starting Nmap . ( http://nmap.org ) at -- : CST

Nmap scan report for ...

Host is up (.s latency).

Not shown: closed ports

PORT STATE SERVICE

/tcp open ssh

/tcp open rpcbind

/tcp open http-proxy

/tcp open unknown

MAC Address: B:A::CF:FD:D (Unknown)

Nmap done: IP address ( host up) scanned in . seconds

总结

提供端口服务,则使用了tcp协议,上面是以web服务器为例。如果服务器是更简单的tcp服务器,三个工具同样适用.

三个工具的共同点是:1.以tcp协议为基础;2.能访问指定端口. 遵循这两点可以找到很多工具.

一般在windows下使用telnet比较方便,linux下个人就比较喜欢用wget.

主要现象是在服务器本机上telnet某一个端口是正常的,但是在服务器外面telnet该端口却是不通的。一般情况下可以判断为防火墙问题。

如果是dns软件的,可以通过nslookup在服务器上测试,及在服务器分别外测试一下来判断。如果服务器上测试有结果出来,服务器外没有响应,一般就是防火墙问题。

防火墙分为服务器本身的防火墙及机房的硬件防火墙。

一、服务器本身防火墙一般有三个地方需要检查:

1.控制面板上点开windows自带的防火墙,看是否启用,端口是否打开,是否有限制了IP链接

2.管理工具-本地安全策略-IP安全策略在本机算机,看是否设置了安全策略,如果有“策略已指派”的可以暂时不指派测试看。

3.检查本地链接中IP过虑设置。看是否已设置,注意IP过虑设置完了需要重启服务器才会生效。

本地防火墙都检查了,确认没有限制该端口,一般就是机房硬件防火墙限制了,需要通知机房处理。

二、如果进一步确认一定是机房防火墙的问题:

如果客户在同一个机房有两台机器的话,可以在另外一台机器上telnet这个机器的相关端口,或用nslookup测试udp端口。

如果在机房里的另一台机器上是通的,就可以确认不是服务器本身的防火墙引起的,一定是机房的防火墙引起的。

三、有一些机房防的硬件防火墙,会导致在服务器外telnet相关的端口,会也是通的。但是相关的服务却不能用。

这种情况可以通过两种方法来判断。

1.在服务器内及服务器外,分别telnet相关端口后,可以输入回车键,或其它键,观察cmd窗口的反应。如果被机房硬防隔开了,一般窗口的响应上会有差别。

如果是tcp端口,可以使用telnet命令登录到该端口来测试该端口是否打开:如果telnet能够连上,说明该端口已经打开,否则是关闭的。0①、先做好端口防火墙或者 路由的80 端口映射,要是这个步骤您已经完成,但是还是不行的话,那座第二步; ②、将您以前用作网站服务的80端口改为其他端口,如 81、8080、8088、8888等等,再重新做好 端口映射,因为据说现在很多运营商 都 把未备案的 网站的80端口“封杀”,据说需要“备案”才能使用80端口。 最后可能端口被封服务器通过路由器上网,则修改端口需要两步:1、请先在服务的设置界面修改http端口,并在局域网内尝试访问 “http://服务器局域网ip地址:新端口” ,以验证新端口是否已修改成功。2、再设置路由器端口映射,将新端口转发至服务器局域网ip地址上(协议选ALL),并尝试访问 “http://路由器wan口ip地址:新端口” ,以检验端口映射是否成功


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/752813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-16
下一篇2023-08-16

发表评论

登录后才能评论

评论列表(0条)

    保存