Сервер теряет публичный доступ при запуске 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.

Другие вопросы по тегам