У меня есть сервер A, на котором запущен OpenVPN, клиент OpenVPN B (телефон Android с root-правами) и сторонний сервер C (ноутбук, планшет и т. Д.), Привязанный к B.
B может использовать VPN для доступа в Интернет через A; C может использовать привязанное соединение БЕЗ VPN для доступа в Интернет через B.
Однако, когда VPN на B активен, я не могу загружать информацию из Интернета на C.
Кажется, что A регистрирует аналогичный входящий и исходящий трафик, когда B или C пытаются загрузить веб-страницу, например, но VPN на устройстве B сообщает об отсутствии входящего трафика, когда соединение исходит от C.
Где мне искать отбрасываемые пакеты и какие правила IP мне следует использовать, чтобы убедиться, что они передаются обратно через VPN в локальную сеть B <-> C?
(Я, очевидно, опубликую всю необходимую дополнительную информацию.)
Дополнительная информация
Без VPN:
root@android:/ # ip route
default via [B's External Gateway] dev rmnet0
[B's External Subnet] dev rmnet0 proto kernel scope link src [B's External IP]
[B's External Gateway] dev rmnet0 scope link
192.168.43.0/24 dev wlan0 proto kernel scope link src 192.168.43.1
С VPN:
root@android:/ # ip route
0.0.0.0/1 dev tun0 scope link
default via [B's External Gateway] dev rmnet0
[B's External Subnet] dev rmnet0 proto kernel scope link src [B's External IP]
[B's External Gateway] dev rmnet0 scope link
[External address of A] dev tun0 scope link
128.0.0.0/1 dev tun0 scope link
172.16.0.0/24 dev tun0 scope link
172.16.0.8/30 dev tun0 proto kernel scope link src 172.16.0.10
192.168.43.0/24 dev wlan0 proto kernel scope link src 192.168.43.1
192.168.168.0/24 dev tun0 scope link
Ах, исправил, запустив следующее на B (телефоне):
iptables -t nat -A POSTROUTING -s 192.168.43.0/255.255.255.0 -o tun0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.43.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable
Это в значительной степени соответствует обычной базовой настройке VPN-сервера; У меня были проблемы, потому что я запутался в том, какая сеть является какой, какой интерфейс какой, а затем, когда у меня были все права, я понял, что у меня все еще установлен неправильный шлюз на C.