다른 네트워크 인터페이스에서 양말/SSH를 여는 방법은 무엇입니까?

다른 네트워크 인터페이스에서 양말/SSH를 여는 방법은 무엇입니까?
iptables -A PREROUTING -i usb0 -t mangle -p tcp --dport 8080 -j MARK --set-mark 1

iptables-L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

// 1로 표시된 트래픽을 myusb0 테이블로 라우팅합니다.

ip rule add fwmark 1 table myusb0

IP 경로 ls

192.168.0.0/24 dev usb1  proto kernel  scope link  src 192.168.0.136  metric 1 
192.168.3.0/24 dev usb0  proto kernel  scope link  src 192.168.3.182  metric 1 

IP 규칙 ls

0:  from all lookup local 
32762:  from all fwmark 0x1 lookup myusb0 
32763:  from 192.168.3.0/24 lookup myusb0 
32764:  from 192.168.0.1/24 lookup myusb1 
32766:  from all lookup main 
32767:  from all lookup default 

IP 라우팅 ls 테이블 myusb0

default via 192.168.3.2 dev usb0 

IP 라우팅 ls 테이블 myusb1

default via 192.168.0.1 dev usb1

//포트 8080의 양말 열기

ssh -f -N -D 0.0.0.0:8080 [email protected]

// 유효한지 확인

컬 --socks5 192.168.3.182:8080 ip.appspot.com

channel 1: open failed: administratively prohibited: open failed
curl: (7) Failed to receive SOCKS5 connect request ack.

두 개의 다른 ISP에서 두 개의 인터넷 연결이 있고 각 연결에서 프록시/socks5를 열고 싶습니다. 연결을 관리할 수 있도록 각 인터페이스를 포트 번호와 연결하는 것이 합리적이라고 생각합니다.

각 장치( 및 )에 대해 두 개의 라우팅 테이블( 및 )을 만든 myusb0다음 포트 번호를 기준으로 트래픽을 표시하고(예: 1로 표시한 포트에서) 해당 표시의 트래픽을 특정 테이블( )로 라우팅했습니다. . 그런 다음 해당 IP에서 양말5를 열어보고 로컬로 시도했지만 어떤 이유로 작동하지 않았습니다.myusb1usb1usb08080myusb0

로컬에서 작동하게 되면 양말을 반대 방향으로 열어 양말을 사용해야 하는 원격 서버에 제공할 수 있다고 생각했습니다.

현재 작동하지 않는 이유와 해결 방법을 알고 계시나요? 어떤 이유로 sock 연결이 포트 8080태그 규칙을 따르고 myusb0 테이블을 시도하는 대신 기본 테이블에 설정되지 않은 기본 게이트웨이를 시도하고 있다고 생각합니다. 저는 Ubuntu(최신 버전)를 사용하고 있습니다.

두 ISP 모두 동적 IP를 제공한다는 점을 언급해야 합니다.

편집하다

예상한 대로 포트 8080으로의 트래픽이 라우팅되지 않는 것 같습니다(걱정할 양말 없음). 그러나 이유를 모르겠습니다.

 curl portquiz.net:8080 
curl: (7) Couldn't connect to server

관련 정보