Сервер теряет публичный доступ при запуске VPN
У меня есть настройка сервера, который использует клиент OpenVPN, чтобы подключить его к моей частной сети дома. Всякий раз, когда я запускаю VPN-клиент на сервере, я могу подключиться только к его общедоступному IP-адресу (188.226.161.x), только если я нахожусь в той же сети VPN. Если сервер не подключен к VPN, я могу подключиться к нему, даже если в настоящее время я использую VPN или нет.
Вопрос
Можно ли разрешить мне подключаться к общедоступному IP-адресу сервера, даже если я не подключен к той же VPN?
Дополнительная информация
- На сервере нет правил брандмауэра.
- Сервер является экземпляром Digital Ocean под управлением Ubuntu 14.04
Таблица маршрутизации на сервере до подключения к VPN
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 188.226.161.1 0.0.0.0 UG 0 0 0 eth0
10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0
188.226.161.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Таблица маршрутизации на сервере после VPN-подключения
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 188.226.161.1 0.0.0.0 UG 0 0 0 eth0
10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0
10.8.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
178.62.56.51 188.226.161.1 255.255.255.255 UGH 0 0 0 eth0
188.226.161.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
1 ответ
Я нашел решение проблемы с ответом суперпользователя. Проблема заключается в том, что сервер по умолчанию использует интерфейс tun0, а не eth0, тогда как на самом деле мы хотим, чтобы он использовал только tun0 для частной сети с 10.8.0.0 по 10.8.0.255. Таким образом, решение состоит в том, чтобы настроить подключение клиента только для использования интерфейса tun0 при подключении к другим VPN-IP-адресам, а не для всего Интернета.
Для меня это было сделано путем добавления следующих двух строк в конец файла client.conf и перезапуска моего соединения openvpn:
route-nopull
route 10.8.0.0 255.255.255.0
Это означает, что если сервер пытается подключиться к 10.8.0.0-255, он будет использовать интерфейс tun0. Любой пункт назначения, кроме этого, вместо этого будет использовать интерфейс eth0.