Назад | Перейти на главную страницу

Маршрутизация исходящих подключений из локальной сети через VPN

У меня есть сервер 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.