检查服务器的端口是否打开
本文最后更新于 635 天前,如遇到任何问题欢迎在评论区留言呀!

常见的检查服务器的端口是否打开分为 2 类,一类是通过telnet从服务器外部检查某一个端口是否开放,另一类是通过netstat查看服务器内部的 socket 通信情况。

telnet

通过telnet命令可以检查某个ip的某个port是否开放,具体的用法如下:

telnet ip port

若没有输出一直处于等待状态或者显示telnet: Unable to connect to remote host: Connection refused则表示连接失败。只有显示Escape character is '^]'才说明连接成功。

连接成功后如何退出:

成功后按住ctrl键不松,再按]键,即可回到交互界面:

telnet> 

只需要在交互界面的命令行中输入quit或者close即可退出。

netstat

netstat现在基本被淘汰了,下面的说明引自维基百科:

On Linux, netstat (part of “net-tools”) is superseded by ss (part of iproute2). The replacement for netstat -r is ip route, the replacement for netstat -i is ip -s link, and the replacement for netstat -g is ip maddr, all of which are recommended instead.

下面我们使用ss(socket statistics)代替netstat说明:

ss常用的选项有:

  1. -a:列出所有当前的连接。
  2. -t:列出 TCP 连接。
  3. -u:列出 UDP 连接。
  4. -n:主机用 ip 表示即可。(numerical)
  5. -l:列出属于监听状态下的套接字。(listen)
  6. -p:指出套接字所在进程的 PID,该选项需要 root 权限,否则可能无法正常显示 PID。
# 只列出 tcp 协议且处于监听状态的套接字,并以 ip 形式表示
ss -ntl

ss -ntl 的输出

说明:

首先,一般情况下,ip 和网卡(Network adapter 或者 Network Interface Control 简称 NIC)是一一对应的。

状态为LISTEN的连接,Local Address表明某个程序在某个网卡的端口上(某个 ip 的端口上)监听是否收到连接请求,由于还未建立连接,Peer Address都是0.0.0.0:0,表示不知道对方的信息(ip 和端口)。

  1. Local Address0.0.0.0表示监听所有网卡(ip)收到的请求。
  2. Local Address127.0.0.1表示只监听连接本机的网卡,即来自本机的请求。
  3. Local Address是公网 IP,表示只监听连接公网的网卡,即来自公网的请求。
  4. Local Address是内部 IP,表示只监听连接内部网络的网卡,即来自内部网络的请求。

参考资料

  1. netstat 的 10 个基本用法
  2. How to read NETSTAT -AN results
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇