Linux 之 IP 与端口探索指南

2024-12-05 09:12:50

一、Linux 中查看 IP 和端口的方法

图片6.jpg

在 Linux 系统下,有多种方法可以查看 IP 地址和端口号。以下将详细介绍这些方法及其操作步骤。

1. 使用ip addr或ip addr show查看 IP 地址

执行ip addr或ip addr show命令后,输出会包含网络接口名称、状态、MTU、链路层地址、IPv4 和 IPv6 地址等丰富的信息。以博客园作者“南帝001”的实际操作为例,在命令执行结果中会显示类似“1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff inet 10.10.11.92/24 brd 10.100.122.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fec7:7975/64 scope link valid_lft forever preferred_lft forever”的内容。如果机器有多块网卡,每块网卡都会显示一部分信息。其中,“lo”是回环地址,通常分配到 127.0.0.1 地址上,用于本机通信;“eth0”是网卡名,如果有多块网卡,会有多个类似名称。“link/ether”后面是 MAC 地址,一块网卡对应一个唯一的 MAC 地址。“inet”后面是网卡上绑定的 IP 地址,通常所说的 IPv4 地址,一块网卡可以绑定多个 IP 地址。在绑定 IP 地址时需要注意,windows 主机会提示 IP 地址冲突,而 linux 主机无任何提示,所以在添加新的 IP 地址时务必检测一下新地址是否和原有地址冲突,避免造成访问不可用。常用检测命令有 ping 或 arping IP。“inet6”则是 IPv6 地址。

2. 只查看 IP 地址的方法

对于只查看 IP 地址,可以使用以下命令:IPv4:ip addr | grep inet。IPv6 相关命令可根据具体需求进行查找和使用。

3. 查看端口的方法

查看端口可使用ss -tuln或netstat -tuln命令。这些命令中的参数具有特定的含义:-t表示显示 TCP 端口。-u表示显示 UDP 端口。-l表示显示监听状态的端口。-n表示不解析服务名称,直接使用端口号显示。例如,以“Linux常用命令——常用网络命令【二】_-tuln 在 linux 是什么意思”中提到的为例,使用“netstat -tuln”可以查看本机开启的端口,输出中“Proto”表示网络连接的协议,一般是 TCP 协议或者 UDP 协议;“Recv-Q”表示接收到的数据,已经在本地的缓冲中但还没有被进程取走;“Send-Q”表示从本机发送但对方还没有收到的数据,依然在本地的缓冲中,一般是不具备 ACK 标志的数据包;“Local Address”是本机的 IP 地址和端口号;“Foreign Address”是远程主机的 IP 地址和端口号;“State”表示状态,常见的状态有 LISTEN(监听状态,只有 TCP 协议需要监听,UDP 协议不需要监听)、ESTABLISHED(已经建立连接的状态)等。此外,还有多种查看端口的方式,如:使用netstat命令时,如果加上“-p”选项,可以查看到是哪个程序占用了端口,并且可以知道这个程序的 PID。使用ss -tuln命令,与netstat -tuln类似,能查看 TCP 和 UDP 监听状态的端口。使用lsof命令查看端口,如“lsof -i :端口号”可以查看特定端口的使用情况,输出结果包含与该端口相关的进程信息,能够更加详细地了解到端口的使用情况。综上所述,在 Linux 系统中,通过多种命令和方法可以方便地查看 IP 地址和端口号,这些方法在网络管理、故障排除等方面都非常实用。

二、Linux 中连接 IP 和端口的方法

在 Linux 系统中,连接指定 IP 地址和端口可以使用 telnet 命令。以下是具体的步骤及操作:

1. 打开终端/命令行界面

打开 Linux 系统终端或命令行界面是使用 telnet 命令的第一步。这为后续输入命令连接到指定 IP 地址和端口提供了操作环境。

2. 输入 telnet 命令

在终端中输入 telnet 命令,格式为telnet [IP 地址] [端口]。例如,要连接 IP 地址为 192.168.1.1 的主机的 80 端口,可以输入telnet 192.168.1.1 80。等待连接建立后,若连接成功,会显示连接成功的提示信息,可以进行后续操作,如输入相关命令与目标 IP 地址的端口进行交互。

3. 若要结束 telnet 连接

可以按下Ctrl + ],然后输入quit。具体来说,当按下Ctrl + ]后,会进入 telnet 的命令交互状态,此时输入quit即可退出 telnet 连接。此外,还有多种退出 telnet 连接的方式。比如可以使用 EOF 符号,在 telnet 连接状态下,输入Ctrl + D即可发送 EOF 符号给远程服务器,从而退出 telnet 连接,这种方式适用于需要频繁退出 telnet 连接的情况。也可以使用 telnet 的内置命令,在 telnet 连接状态下,输入telnet> quit命令即可退出 telnet 连接,这种方式是 telnet 的内置命令,可以保证在任何情况下都能够正确退出 telnet 连接。如果由于网络或者其他原因导致 Telnet 连接出现问题,无法正常退出,还可以使用强制退出的方法,在终端中输入Ctrl + C组合键,即可强制中断 Telnet 连接,但需要注意使用这种方式可能会导致连接异常关闭,可能会有数据丢失的风险。

三、Linux 中限定连接 IP 和端口的方法

在 Linux 系统下,可以通过多种方法来限定连接 IP 和端口。

1. 限制端口

可以通过修改/etc/ssh/sshd_config文件并重启sshd服务来实现限制端口。具体步骤如下:首先,使用命令行工具尝试编辑/etc/ssh/sshd_config文件,可能会遇到系统不让修改的情况,如提示“/etc/ssh/sshd_config E212: Can't open file for writing”。此时可以尝试使用sudo gedit /etc/ssh/sshd_config命令,系统会提示输入密码,输入密码后即可进行编辑。在文件中找到端口相关的配置项,进行端口的修改。修改完成后,保存退出。接着,重启sshd服务使修改生效。同时,可以使用命令判断端口是否被占用。例如,可以使用netstat -anp |grep 端口号来查看指定端口是否被占用,如sudo netstat -anp |grep 3306。若出现相关信息,则表示该端口被占用。此外,还可以使用lsof和ss命令检查端口占用情况。如lsof -i:<端口号>和ss -tuln | grep<端口号>,这些命令可以列出占用指定端口的进程信息。

2. 限定 IP

可以通过编辑/etc/hosts.deny和/etc/hosts.allow文件来实现特定 IP 或网段的连接限制。编辑/etc/hosts.deny文件,在其中可以加入特定的规则来限制 IP 连接。例如,可以加入sshd:ALL来限制所有 IP 的 SSH 连接;也可以加入特定的 IP 限制,如sshd:192.168.0.111限制特定 IP 的 SSH 连接;或者加入网段限制,如sshd:192.168.0.*限制特定网段的连接。编辑/etc/hosts.allow文件进行相应的允许设置。例如,sshd:192.168.0.123:allow允许特定 IP 的连接;sshd:192.168.0.*:allow允许特定网段的连接;或者直接加入 IP 或网段,如sshd:192.168.0.123、sshd:192.168.0.*。当hosts.allow和hosts.deny有 IP 地址冲突时,以hosts.allow的设置为准。一般情况下,hosts.allow和hosts.deny结合起来一起使用,才能保证更好的安全性。即在hosts.deny文件中写入“all:all:deny”,禁止一切 IP 地址远程访问所有资源,然后在hosts.allow文件中添加特定的 IP 地址允许远程访问资源即可。多个 IP 地址或 IP 地址段设置相同时,可以用逗号分割开来写在一行。

四、Linux 中访问特定 IP 和端口的方法

在 Linux 系统中,我们常常需要对特定 IP 和端口进行访问控制,以确保系统的安全性和稳定性。下面将介绍给特定 IP 段开放特定端口以及使用防火墙规则限制访问的方法。

关闭端口

可以使用firewall-cmd --zone=public --remove-port=3306/tcp --permanent命令关闭端口。例如,如果我们想要关闭 3306 端口,以防止未经授权的访问,可以执行这个命令。执行后,所有 IP 地址都将无法访问该端口。

开放端口给特定 IP 段

如果我们想要允许特定 IP 段访问特定端口,可以使用firewall-cmd --permanent --add-rich-rule=\"rule family=\"ipv4\" source address=\"192.168.0.0/24\" port protocol=\"tcp\" port=\"3306\" accept\"命令。这个命令允许 IP 地址在 192.168.0.0/24 网段的主机访问 3306 端口。其中,192.168.0.0/24 表示子网掩码为 255.255.255.0 的 IP 地址范围。

重新载入防火墙设置使设置生效

执行完关闭或开放端口的命令后,需要重新载入防火墙设置才能使设置生效。可以使用firewall-cmd --reload命令来实现。这个命令会重新加载防火墙规则,使新的设置立即生效。同时,我们还可以查看和删除已设置的规则。查看已设置规则可以使用firewall-cmd --zone=public --list-rich-rules命令。如果我们想要删除已设置的规则,可以使用firewall-cmd --permanent --remove-rich-rule=\"rule family=\"ipv4\" source address=\"192.168.0.0/24\" port protocol=\"tcp\" port=\"3306\" accept\"命令,然后再执行firewall-cmd --reload命令使删除操作生效。


声明:此篇为墨韵科技原创文章,转载请标明出处链接: https://www.360jidan.com/news/4434.html
  • 网站建设
  • SEO
  • 信息流
  • 短视频
合作伙伴
在线留言
服务热线

服务热线

15879069746

微信咨询
返回顶部
在线留言