На самом деле вы не связываете
eth0
и tun0
больше, чем вы связываете wlan0
и tun0
. Вы фактически позволяете пакетам проходить от одного интерфейса к другому, устанавливая ip_forwarding=1
, либо постоянно, изменяя /etc/sysctl.conf
, либо временно, echo
- вводя 1 в /proc/sys/kernel/net/ipv4/ip_forward
.
Единственное, чего не хватает, это изменения заголовка пакета: если вы просто пропустите их в исходном виде, пакеты будут содержать в качестве IP-адреса IP-адрес выдающего компьютера, который не является IP-адресом интерфейса, через который они вышли из вашей системы (wlan0
, в данном случае). Поэтому вам нужен iptables
, чтобы заставить их выглядеть так, будто они исходят от wlan0
, чтобы они нашли дорогу домой. iptables
автоматически запоминает, какое соединение должно быть направлено обратно на tun0
, а какое нет:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
EDIT:
вы пытаетесь держать ваш компьютер подключенным одновременно с eth0
и wlan0
. Инструкции, которые я вам дал, предполагают, что вы только подключены через wlan0
. Вам следует отключиться от ethernet, перезапустить openvpn и проверить, что они действительно работают.
Держа одновременно подключенными eth0
и wlan0
, запустив экземпляр OpenVPN на wlan0
и маршрутизируя трафик LAN с tun0
через OpenVPN можно, но для этого требуется другая техника. Я предлагаю вам задать другой вопрос об этом.