У нас есть SSH-туннель (ssh -ND 127.0.0.1:8080 user@example.com
), который отлично работает для браузеров, если указать им на 127.0.0.1:8080
как прокси socks5, но другой трафик по-прежнему не проходит через этот туннель.
Как мне заставить абсолютно весь трафик проходить через SSH-туннель?
Какие инструменты и настройки мне нужны для этого?
Я использую Debian и MacOS, поэтому лучше, если решение будет более или менее общим для обеих платформ.
Вы можете создать VPN с помощью ssh. Вот соответствующий раздел из man ssh
:
SSH-BASED VIRTUAL PRIVATE NETWORKS
ssh contains support for Virtual Private Network (VPN) tunnelling using the tun(4)
network pseudo-device, allowing two networks to be joined securely. The sshd_config(5)
configuration option PermitTunnel controls whether the server supports this,
and at what level (layer 2 or 3 traffic).
The following example would connect client network 10.0.50.0/24 with remote network
10.0.99.0/24 using a point-to-point connection from 10.1.1.1 to 10.1.1.2,
provided that the SSH server running on the gateway to the remote network,
at 192.168.1.15, allows it.
On the client:
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2
On the server:
# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1
В конце концов, у вас будет туннельный интерфейс, который вы можете использовать для пересылки трафика.