Linux에서 특정 명령에 사용되는 게이트웨이 선택

Linux에서 특정 명령에 사용되는 게이트웨이 선택

인터넷 연결을 제공하는 여러 네트워크 인터페이스가 있습니다. route add default gw ...언제든지 인터넷 접속에 사용되는 인터페이스를 변경할 수 있습니다 .

그런데 특정 명령에 대해서만 게이트웨이를 선택할 수 있나요? 예를 들어 한 프로세스에서는 GSM 모뎀 링크를 사용하고 시스템에서는 다른 모든 인터넷 요청에 이더넷 링크를 사용합니다.

답변1

iptables다른 사용자와 함께 할 수 있습니다 . 명령에서 사용하려는 인터페이스의 IP 주소가 1.2.3.4이름 eth1과 게이트웨이 라고 가정합니다 1.2.3.1.

1) 새 사용자를 만듭니다.

adduser user2

2) 해당 사용자로부터 오는 패킷을 표시합니다.

iptables -t mangle -A OUTPUT -m owner --uid-owner user2 -j MARK --set-mark 42

3) 해당 패키지에 IP 주소를 적용합니다.

iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 42 -j SNAT --to-source 1.2.3.4

4) 표시된 패킷을 eth1'의 게이트웨이를 통해 라우팅합니다.

ip rule add fwmark 42 table 42
ip route add default via 1.2.3.1 dev eth1 table 42

5) 새 사용자로 명령을 실행합니다.

sudo -u user2 ping example.com

ping example.com1.2.3.1이제 시스템 기본 게이트웨이가 아닌 게이트웨이를 통해 라우팅됩니다 .

관련 정보