Мой локальный сервер Linux подключен к Интернету через маршрутизатор. Маршрутизатор (192.168.0.1) делает NAT от ISP присвоенный IP-адрес (который время от времени изменяется) к локальному IP сервера (192.168.0.102).
Когда подключения сервера к VPN (PrivateInternetAccess) и tun0 адаптер запускаются (с другим IP каждый раз), ко всем переданным сервисам (как веб-сервер) больше нельзя получать доступ из внешних сетей.
Как я могу настроить сервер, чтобы услышать и ответить на http (s), ssh (работа нестандартного порта) и запросы ftp, в то время как VPN работает. Для меня не имеет значения, проходит ли тот определенный трафик VPN пока все другие, трафик делает.
Вам нужно посмотреть таблицы маршрутизации и увидеть, какие IP-адреса назначения маршрутизируются через вашу VPN:
ip route
Весь ваш трафик, вероятно, маршрутизируется через VPN (за исключением адресов LAN и конечной точки VPN). Это означает, что пакеты ваших сервисов маршрутизируются через VPN (с вашими локальными и частными IP-адресами). Эти пакеты отбрасываются где-то в удаленной сети (возможно, в конечной точке VPN), потому что:
они (вероятно) не используют удаленные сетевые адреса;
они являются частными (немаршрутизируемыми) адресами;
даже если бы они не были отфильтрованы (и использовался NAT), они были бы преобразованы в NAT для IP-адресов удаленной сети.
Вам необходимо, чтобы эти пакеты маршрутизировались через ваш локальный шлюз.
Вы можете сделать что-то вроде этого. для принудительного прохождения пакетов, использующих ваш локальный IP в качестве адреса отправителя, через локальный шлюз:
# Your IP address:
ip rule add from 192.168.0.42 table 42
ip route add default via 192.168.0.1 table 42
Это должно работать для служб TCP. У вас могут возникнуть проблемы с сервисами UDP, которые могут отвечать вашим VPN-адресом на запросы, сделанные с вашего локального IP-адреса: в этом случаевы, вероятно, можете использовать iptables, чтобы либо переписать исходный IP-адрес пакетов, либо пометить их ( -j MARK --set-mark 42
и fwmark 42
) на основе порта UDP.
Проблема здесь в том, что весь трафик направляется по VPN-туннелю. Эта проблема должна быть решена включением раздельного туннелирования для VPN. Как это сделать, зависит от используемого сервера и клиентского программного обеспечения
.