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를 열어보고 로컬로 시도했지만 어떤 이유로 작동하지 않았습니다.myusb1
usb1
usb0
8080
myusb0
로컬에서 작동하게 되면 양말을 반대 방향으로 열어 양말을 사용해야 하는 원격 서버에 제공할 수 있다고 생각했습니다.
현재 작동하지 않는 이유와 해결 방법을 알고 계시나요? 어떤 이유로 sock 연결이 포트 8080
태그 규칙을 따르고 myusb0 테이블을 시도하는 대신 기본 테이블에 설정되지 않은 기본 게이트웨이를 시도하고 있다고 생각합니다. 저는 Ubuntu(최신 버전)를 사용하고 있습니다.
두 ISP 모두 동적 IP를 제공한다는 점을 언급해야 합니다.
편집하다
예상한 대로 포트 8080으로의 트래픽이 라우팅되지 않는 것 같습니다(걱정할 양말 없음). 그러나 이유를 모르겠습니다.
curl portquiz.net:8080
curl: (7) Couldn't connect to server