아래 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 핸들을 수정하여 "프로세스 해킹"이 가능할 수 있습니다. 그러나 그것은 확실히 갈 길이 아니다...