Linux에서 OpenVPN 연결을 통해 브라우저 트래픽을 라우팅하는 방법은 무엇입니까?

Linux에서 OpenVPN 연결을 통해 브라우저 트래픽을 라우팅하는 방법은 무엇입니까?

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".

이는 sshSOCKS 프록시 역할을 할 수 있으므로 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를 재구성할 수 있습니다.

관련 정보