기본 인터페이스가 아닌 다른 인터페이스를 통해 특정 포트 보내기

기본 인터페이스가 아닌 다른 인터페이스를 통해 특정 포트 보내기

저는 리눅스를 처음 접했습니다. 많은 기사를 읽었지만 내 구성에서 문제를 찾을 수 없으며 도움이 필요합니다.

나는 두 가지 인터페이스를 갖춘 Debian PC를 가지고 있습니다:

  • ens192- 10.20.30.0/26 기본 게이트웨이
  • ens256- 10.10.10.8/29

라우터 10.20.30.40(기본값)과 10.10.10.10을 사용하는 두 개의 인터넷 공급자가 있습니다.

10.10.10.10 라우터를 통해서만 TCP/443 및 TCP/8080 트래픽을 보내고 싶습니다. 다른 모든 통신은 10.20.30.40을 통해 이루어져야 합니다.

나는 추가했다

80   special

가서 /etc/iproute2/rt_tables달려라

sudo ip route add table 80 10.10.10.8/29 dev ens256 scope link src 10.10.10.12    
sudo ip route add table 80 default dev ens256 via 10.10.10.10
sudo iptables -t mangle -N markports
sudo iptables -t mangle -I PREROUTING 1 -j CONNMARK --restore-mark
sudo iptables -t mangle -I OUTPUT 1 -m mark --mark 0 -j markports
sudo iptables -t mangle -I OUTPUT 2 -j CONNMARK --save-mark
sudo iptables -t mangle -A markports -p tcp --dport 443 -j MARK - set-mark 0x80
sudo ip rule add fwmark 0x80 lookup 80
sudo iptables -t nat -I POSTROUTING 1 -m mark --mark 0x80 -j MASQUERADE

그러나 여전히 작동하지 않습니다! 무엇을 바꿔야 합니까?

답변1

iptables/rules/routing에 대해 아직 배우는 중이므로 제 조언을 받아주세요. 그러나 구성한 경로/테이블을 적용하기 위한 "ip 규칙"이 누락된 것 같습니다.

예를 들어 다음과 같은 것이 작동할 것이라고 생각합니다.

ip rule add iif lo ipproto tcp dport 80 lookup 80
ip rule add iif lo ipproto tcp dport 443 lookup 80

자세한 내용은 이 질문을 참조하세요.특정 인터페이스를 통해 포트 트래픽 라우팅

관련 정보