OpenVPN 연결을 설정했지만 이를 통해 모든 트래픽을 보내고 싶지 않습니다.
현재 라우팅 테이블은 다음과 같습니다.
$ ip route
default via 192.168.88.1 dev enp7s0 proto dhcp metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2
192.168.88.0/24 dev enp7s0 proto kernel scope link src 192.168.88.29 metric 100
목표는 모든 트래픽을 라우팅하는 것입니다.특정한프로그램을 통해 tun0
첫 번째 후보 프로그램은 물론 브라우저입니다.
여러분은 그것이 어떻게 이루어질 수 있는지 몇 가지 아이디어를 가지고 있습니까?
나는 대해 알고있다iptablesPID를 기반으로 하는 소스 라우팅이지만 새 프로세스가 생성될 때마다 iptables 규칙을 다시 생성해야 합니다. 그리고 브라우저의 모든 탭은 새로운 프로세스이기 때문에... 솔직히 이 모든 작업이 어떻게 수행될 수 있는지 상상할 수 없습니다.
다음 생각은 로컬 양말 프록시를 사용한 다음 say 를 실행하는 것입니다 google-chrome --proxy-server="socks5://127.0.0.1:1080"
.
이는 ssh
SOCKS 프록시 역할을 할 수 있으므로 SSH 터널에서 잘 작동합니다. 그러나 동일한 방식으로 작동하지만 SSH 터널 없이 작동할 수 있는 프록시 프로그램을 찾지 못했습니다. 즉, SOCKS 인터페이스를 노출하고 tun0
. 뭔가 추천해주실 수 있나요?
답변1
브라우저 등을 실행하는 사용자의 iproute2 및 uid를 사용할 수 있습니다. 예를 들어:
ip route add table 502 default dev tun0
lp rule add uidrange 1000-1002 table 502
답변2
터널을 기본 게이트웨이로 사용하여 새 네트워크 네임스페이스에서 VPN을 통해 라우팅하려는 프로그램을 실행하세요.
브라우저(및 VPN을 사용해야 하는 다른 프로그램)의 .desktop 파일이 동작을 제어하는 스크립트를 실행하고 네임스페이스를 설정하기 위해 openvpn 구성에 스크립트를 추가하도록 PC를 재구성할 수 있습니다.