在下面的 unix 输出中netstat -pln
,是否可以通过 unix 命令将端口 7077 的 IP 地址 127.0.1.1 更改为 0.0.0.0,还是由端口 7077 上运行的进程确定?
netstat -pln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:7077 0.0.0.0:* LISTEN 2864/java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2864/java
tcp 0 0 127.0.1.1:6066 0.0.0.0:* LISTEN 2864/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 192.168.192.22:123 0.0.0.0:* -
udp 0 0 127.0.0.1:123 0.0.0.0:* -
udp 0 0 0.0.0.0:123 0.0.0.0:* -
udp 0 0 0.0.0.0:21415 0.0.0.0:* -
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 7195 - /var/run/dbus/system_bus_socket
unix 2 [ ACC ] SEQPACKET LISTENING 405 - /run/udev/control
答案1
基本上,当进程请求在 Linux 中打开 TCP(或任何其他)套接字时,它会请求侦听特定端口和特定 IP。更改进程监听的 IP 最简单的方法就是让进程请求不同的 IP 来监听。这意味着,通常您会更改应用程序的配置(例如通过配置文件或命令行参数),或者如果不可能,则需要重新编译它。
简而言之回答你的问题:是的,监听的IP是由进程指定的,而不是操作系统本身。
一般来说,可能有可能通过修改 TCP 句柄来“破解进程”。但这肯定不是要走的路......