호스트 A에서 TCP 서버를 시작한 다음 다른 호스트 B에서 TCP 클라이언트를 시작했습니다.
두 호스트 모두 집에 있는 무선 라우터를 통해 동일한 LAN에 있습니다. TCP 클라이언트는 포트 8000에서 TCP 서버에 연결을 시도하지만 "호스트에 대한 경로 없음"으로 인해 실패했습니다.
클라이언트 호스트에서 서버 호스트에 성공적으로 ping을 보낼 수 있고 실제로 클라이언트에서 서버로 SSH 연결되었습니다.
두 호스트를 교환하면, 즉 호스트 B에서 TCP 서버를 시작한 다음 호스트 A에서 TCP 클라이언트를 시작하면 TCP 연결이 성공합니다.
서버 호스트 A에 무슨 문제가 있나요? 다음 링크는 iptables -L -n, ss -tlnp 및 netstat -lnp의 결과를 보여줍니다.
http://paste.ubuntu.com/12785409/
A의 라우팅 테이블:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
B의 라우팅 테이블:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
관련 TCP 클라이언트 및 서버는 다음과 같습니다. https://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/tcpserver.c
http://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/tcpclient.c
나는 노력했다
vpnagent 프로세스 종료
# ps ax | grep vpnagent
1291 ? S 0:00 /opt/cisco/vpn/bin/vpnagentd
4202 pts/2 S+ 0:00 grep --color=auto vpnagent
#sudo kill -9 1291
그런 다음
# service vpnagentd stop
# sudo systemctl stop vpnagentd
그리고 이것 때문인지는 모르겠지만, 지난번에 갑자기 연결이 잘 됐어요. 하지만 재부팅한 후 위 명령을 실행하여 vpnagent 서비스를 중지하면 "호스트에 대한 경로 없음" 문제가 여전히 발생합니다.
답변1
Fedora는 포트 차단/허용을 위해 방화벽 서비스를 사용하고 있습니다.
활성 영역을 찾으려면 다음 명령을 사용하세요.
firewall-cmd --get-active-zones
public, dmz 또는 기타 항목이 표시됩니다. 필요한 영역에만 적용해야 합니다.
공개 시도의 경우:
firewall-cmd --zone=public --add-port=8000/tcp
영구적으로 만들고 싶다면 다음을 시도해 보세요.
firewall-cmd --zone=public --add-port=8000/tcp --permanent
그렇지 않으면 예를 들어 영역이 공개인 경우 영역을 dmz로 대체하세요.
firewall-cmd --zone=public --add-port=2888/tcp --permanent
그런 다음 변경 사항을 적용하려면 방화벽을 다시 로드해야 합니다.
firewall-cmd --reload