Linux下面没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来的数据)。也就是说,Linux里面端口的活动与进程是紧密相连的,如果想要关闭某个端口,那么只要杀掉它对应的进程就可以了。
例如要关闭22号端口:
$ netstat -anp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1666/sshd
# -a 显示所有活动的TCP连接,以及正在监听的TCP和UDP端口
# -n 以数字形式表示地址和端口号,不试图去解析其名称(number)
# -p 列出与端口监听或连接相关的进程(有个地方需要注意,下面会提到)(pid)
知道了22号端口对应的进程ID 1666,只要:
$ kill 1666
即可。
其中“-p”选项需要注意一个权限的问题,如果在普通用户登录的shell里面执行netstat命令,那么只能列出拥有该普通用户权限的相关进程,如果想要看到所有的端口情况,最好还是切到root。
附带几个netstat常用选项用法:
$ netstat -tn # 列出所有TCP协议的连接状态
# -t 只显示与TCP协议相关的连接和端口监听状态,注意和-a有区别(tcp)
$ netstat -tuln # 列出所有inet地址类的端口监听状态
㈡ 怎么在Linux服务器上测试TCP/UDP端口的连通性
翻译自:
How to Test Port[TCP/UDP] Connectivity from a Linux Server (文档 ID 2212626.1)
适用于:
Linux OS - Version Oracle Linux 5.0 to Oracle Linux 6.8 [Release OL5 to OL6U8]
Information in this document applies to any platform.
目标:
在Linux服务器上检查TCP/UDP端口的连通性。
解决方案:
telnet和nc 是用来测试端口连通性的一般工具。
telnet可以测试tcp端口的连通性。
nc可以测试tcp和udp端口的连通性。
请确保telnet和nc工具已经安装
在CODE上查看代码片派生到我的代码片
# yum install nc
# yum install telnet
测试tcp端口的连通性:
语法如下:
在CODE上查看代码片派生到我的代码片
telnet <hostname/IP address> <port number>
如下是连通成功的例子:
在CODE上查看代码片派生到我的代码片
# telnet 192.118.20.95 22
Trying 192.118.20.95...
Connected to 192.118.20.95.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
Protocol mismatch.
Connection closed by foreign host.
如下是连通不成功的例子:
在CODE上查看代码片派生到我的代码片
# telnet 192.118.20.95 22
Trying 192.118.20.95...
telnet: connect to address 192.118.20.95: No route to host
使用nc命令来测试tcp端口的连通性:
语法:
在CODE上查看代码片派生到我的代码片
nc -z -v <hostname/IP address> <port number>
如下是连通成功的例子:
在CODE上查看代码片派生到我的代码片
# nc -z -v 192.118.20.95 22
Connection to 192.118.20.95 22 port [tcp/ssh] succeeded!
如下是连通不成功的例子:
在CODE上查看代码片派生到我的代码片
# nc -z -v 192.118.20.95 22
nc: connect to 192.118.20.95 port 22 (tcp) failed: No route to host
使用nc命令来测试udp端口的连通性:
语法:
在CODE上查看代码片派生到我的代码片
nc -z -v -u <hostname/IP address> <port number>
在CODE上查看代码片派生到我的代码片
# nc -z -v -u 192.118.20.95 123
Connection to 192.118.20.95 123 port [udp/ntp] succeeded!
nc检测端口的用法
nc -z -w 10 %IP% %PORT%
-z表示检测或者扫描端口
-w表示超时时间
-u表示使用UDP协议
㈢ LINUX系统中如何配置某个IP地址的UDP端口
RedHat相关系统静态IP地址配置
// 修改网卡eth0的配置文件则打开ifcfg-eth0文件 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
// 网卡设备名 BOOTPROTO=none
// 是否自动获取IP(none、static、dhcp),其中none和static都代表手工分配IP地址 HWADDR=00:0c:29:17:c4:09
// MAC地址 NM_CONTROLLED=yes
// 是否可以由Network Manager图形管理工具托管 ONBOOT=yes
// 是否随网络服务启动,eth0生效,为no时ifconfig查看不到eth0网卡IP信息 TYPE=Ethernet // 类型为以太网 UUID="xxxxxx-xxxx..."
// 唯一识别码 IPADDR=192.168.0.252 // IP地址 NETMASK=255.255.255.0 // 子网掩码 GATWAY=192.168.0.1 // 网关 DNS1=202.106.0.20 // DNS IPV6INIT=no // IPv6没有启用 USERCTL=no // 不允许非root用户控制此网卡
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d chaodiquan.com.xxx.xxx -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 3306 -j ACCEPT
上面这两条,请注意--dport为目标端口,当数据从外部进入服务器为目标端口;反之,数据从服务器出去则为数据源端口,使用 --sport
同理,-s是指定源地址,-d是指定目标地址。
㈣ linux中允许访问TCP与UDP协议的53号端口,该如何进行设置
1、点击[属性]按钮,弹出逗本地连接属性地,选择逗此连接使用下列项目地中的逗专Internet协议(TCP/IP)地,然属后点击[属性]按钮。
2、在弹出的逗Internet协议(TCP/IP)地对话框中点击[高级]按钮。在弹出的逗高级TCP/IP设置地中,选择逗选项地标签,选中逗TCP/IP筛选地,然后点击[属性]按钮。
3、在弹出的逗TCP/IP筛选地对话框里选择逗启用TCP/IP筛选地的复选框,然后把左边逗TCP端口地上的逗只允许地选上(请见附图)。
这样,您就可以来自己添加或删除您的TCP或UDP或IP的各种端口了。添加或者删除完毕,重新启动机器
㈤ 在linux系统上怎么确认win系统的udp某端口是开启的
在工作中有很多时候都在去测试一下服务器端口是否能连通是否正常的情况,下面小编与大家分享一下在Linux环境下如何测试端口的连通性,分别测试TCP端口与UDP端口,希望可以给大家带来帮助,谢谢。1、这个需要Linux服务器里边支持nc命令,如果还没有装的情况会显示如下2、我们可以使用yum命令直接安装,我的是Centos6.5系统3、如果不会用,直接打nc命令就会显示出它的使用方法4、如果需要测试某个服务器的端口在能不能正常在外面访问,例如我测试一下180.97.33.107这个IP的80端口有没有开启可以使用命令:nc-z-w1180.97.33.107805、可以看到默认是使用TCP进行测试的,如果要测试UDP端口有没有开放的可以添加-u一起使用。例如我测试一下202.96.128.86这个IP的UDP53端口:nc-u-z-w1202.96.128.86536、上面可以看到成功的会显示相关的信息,但是如果测试到端口是不开放的或者被防火墙拦截的就不会返回相关的信息。注意事项:本文是根据自己的实情来测试端口的连通性,厉害可以使用其测试下,但具体的IP以及端口要根据自己的实际填写测试哦。