
저는 네트워크를 처음 접했고 올바르게 구성하는 방법을 모릅니다.
서버에 핑을 보낼 수 있어요
ping -I 192.168.42.1 42.112.178.185
하지만 핑을 할 수 없었어요
ping 42.112.178.185
42.112.178.185는 192.168.42.0/24에 대해서만 허용됩니다.
라우팅 테이블을 어떻게 추가할 수 있나요? 사용하고 싶습니다
ping 42.112.178.185
대신에
ping -I 192.168.42.1 42.112.178.185
전화하려고 해요http://42.112.178.185컬이 있고 192.168.42.1에서 라우팅해야 합니다.
답변1
업데이트원하는 대로 특정 문제에 대한 해결책은 다음과 같습니다. 연결하기 전에 curl
옵션을 사용하여 바인딩하도록 지시하여 연결할 때 올바른 소스 IP를 사용 하십시오 --interface
.
로부터컬 맨 페이지:
--상호 작용
지정된 인터페이스를 사용하여 작업을 수행합니다. 인터페이스 이름, IP 주소 또는 호스트 이름을 입력할 수 있습니다.
curl
따라서 이 명령을 사용하여 올바른 IP로 42.112.178.185에 연결하면 문제를 해결할 수 있습니다 .
curl --interface 192.168.42.1 http://42.112.178.185/
물론 인터페이스를 지정할 수도 있습니다.
누군가에게 도움이 될 수 있도록 아래의 라우팅 솔루션을 그대로 둡니다.
대상에 도달할 때 기본 IP(게이트웨이 네트워크에 속하는 IP)가 아닌 다른 소스 IP를 사용하도록 지시하는 경로가 실제로 추가될 수 있습니다.
참고: 일부 필수 정보(기본 게이트웨이의 IP 및 이에 도달하기 위한 인터페이스)가 제공되지 않았기 때문에 해당 값을 찾으려면 몇 가지 추가 스크립트가 필요합니다. 또한 기본 경로를 대체하지 않았지만 두 개의 "절반 기본 경로" 0.0.0.0/1 및 128.0.0.0/1을 추가한 터널이 있을 수 있으므로 42.112.178.185에 대한 경로를 가져옵니다. 올바른 값.
이제 gw IP를 다음에 할당해 보겠습니다 gw
.
gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')
이제 간단한 라우팅 명령은 다음과 같습니다.
ip route add 42.112.178.185 src 192.168.42.1 via $gw
예를 들어 게이트웨이가 10.0.8.1이고 Ubuntu의 가정된 tun0의 IP는 10.0.8.2인 경우 변경 전에 경로를 42.112.178.185로 쿼리하면 다음이 제공됩니다.
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2
cache
변경 후에는 다음과 같습니다.
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
cache
ip route
이 단일 IP 이상에 영향을 미치도록 명령을 변경할 수 있지만 수행할 작업은 이미 존재하는 다른 경로에 따라 다릅니다 .