下のunix出力でnetstat -pln
ポート7077のIPアドレス127.0.1.1をunixコマンドで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はOS自体ではなくプロセスによって指定されます。
通常、TCPハンドルを変更することで「プロセスハッキング」が可能になります。しかし、それは確かに行く道ではありません...