3G 키가 eth0 인터페이스를 차단하는 이유는 무엇이며 이를 해결하는 방법은 무엇입니까?

3G 키가 eth0 인터페이스를 차단하는 이유는 무엇이며 이를 해결하는 방법은 무엇입니까?

나는 다른 도시에 있는 방에 Linux PC(Debian Squeeze)를 가지고 있습니다. (제가 있는 곳에서는 이 PC에 물리적으로 접근할 수 없습니다.)

이 컴퓨터는 인터넷 박스를 사용하여 인터넷에 연결됩니다. 포트 22를 통해 SSH를 사용하여 이 PC에 연결할 수 있습니다(실제로 원격 상자의 포트 XXXX에서 PC의 포트 22로 NAT가 있습니다).

동료 중 한 명이 3G 키를 연결했습니다. 그런 다음 사용합니다.사키스 스크립트이 컴퓨터를 3G 네트워크에 연결했는데 SSH 연결이 중단되었습니다(파이프 파손). 내 동료는 여전히 SSH를 사용하여 로컬 네트워크에서 PC에 액세스할 수 있습니다.

3G 연결이 외부 SSH 연결을 중지하는 이유는 무엇입니까? 이 문제를 해결하는 방법(3G 연결을 설정하는 동안 SSH 연결을 열어두기)?

편집: 추가 정보

3G 스크립트가 시작되기 전에 NAT를 사용하여 연결합니다.

eth0의 IP는 변경되지 않았습니다(연결에 사용하는 인터페이스).

3G 연결 후 새 인터페이스 추가:ppp0 Link encap:Point-to-Point Protocol

IP 라우팅(3G 연결 전)

172.16.210.0/24 dev br0  proto kernel  scope link  src 172.16.210.254 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.50 
default via 192.168.0.254 dev eth0 

IP 라우팅(3G 연결 후)

10.64.64.64 dev ppp0  proto kernel  scope link  src 10.99.122.183 
172.16.210.0/24 dev br0  proto kernel  scope link  src 172.16.210.254 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.50 
default via 10.64.64.64 dev ppp0 

답변1

스크립트를 실행한 후 기본 경로는 다른 인터페이스를 가리킵니다. SSH 연결의 데이터가 그곳으로 전송되었지만 주소가 잘못되었거나 3G 네트워크에서 관련 없는 주소 및/또는 다른 주소로 NAT 처리되었기 때문에 삭제되었습니다.

해결 방법: 명시적 라우팅을 추가합니다. $SSH_CLIENT 변수는 연결이 어디서 오는지 알려줍니다.

# set $SSH_CLIENT
# ip route replace $1 via 192.168.0.254 dev eth0

문제가 해결될 것입니다.

관련 정보