Как маршрутизировать весь трафик через адаптер vpn?

Я использую SoftEther, но это может быть неактуально.

У меня есть следующий адаптер:

vpn_myadapter: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 [redacted]  prefixlen 64  scopeid 0x20<link>
        ether [redacted]  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

и у меня есть следующие маршруты:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         dslrouter.netge 0.0.0.0         UG    600    0        0 wlp4s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 virbr0
192.168.123.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.254.0   0.0.0.0         255.255.255.0   U     600    0        0 wlp4s0

Мне нужно знать, как я могу легко использовать Ubuntu для маршрутизации всего интернет-трафика через мой VPN-адаптер.

1 ответ

Решение

Этот ответ предполагает, что вы уже успешно подключили свою учетную запись и у вас есть работающий адаптер.

Хорошо, после просмотра учебников по IP-таблицам / маршрутам я нашел решение, которое работает с SoftEther и должно работать с другими адаптерами VPN для туннелирования трафика через адаптер.

Начните с запуска ip neigh чтобы получить шлюз по умолчанию для вашей сети VPN и шлюз по умолчанию для этой сети. Вам также понадобится ваш IP удаленного сервера. Если это не дает информацию для вас, запустите ifconfig а также tcpdump на IP для вашего адаптера VPN.

Вы можете легко объединить приведенные ниже шаги в сценарий bash и / или отменить их, чтобы отключить адаптер VPN:

Сначала вам нужно получить информацию DHCP с вашего сервера:

sudo dhclient vpn_myadapter

vpn_myadapter это имя адаптера, которое можно найти с ifconfig,

Во-вторых, вам нужно создать маршрут от IP-адреса вашего VPN-сервера к вашему локальному интернет-шлюзу, который выведет вас в Интернет. 55.55.55.55 - это то, что я буду использовать в качестве примера адреса сервера. Кроме того, вам нужно будет узнать, как называются адаптеры для вашего интернет-соединения и вашего VNA (виртуального сетевого адаптера), и вы можете найти их с помощью ifconfig, Вы также можете использовать ip lie для получения краткого списка ваших адаптеров и их шлюзов.

Команда для создания маршрута от VPN-IP до локального шлюза (в этом примере 192.168.0.1)

sudo ip route add 55.55.55.55/32 via 192.168.0.1 dev eth0

Убедитесь, что eth0 настроен на адаптер, соответствующий вашему локальному шлюзу

Затем вы удалите свой маршрут по умолчанию, который направляет весь трафик по умолчанию.

sudo ip route del default

Теперь вы добавите маршрут по умолчанию, который будет использовать шлюз VPN по умолчанию. Эту информацию можно получить у вашего провайдера, с сервера, который вы настроили, или с помощью комбинации tcdump, ip neigh, а также ifconfig, Возможно, вы сможете найти информацию на этом этапе, но вы должны были запустить ip neigh в начале, если вы не можете найти информацию сейчас. Я буду использовать шлюз по умолчанию, предоставленный SoftEther, который 192.168.30.1,

sudo ip route add default via 192.168.30.1 dev vpn_myadapter

Это должно направить весь ваш трафик через удаленную сеть. Если вы все еще не можете подключиться к Интернету, вам нужно будет запустить DhcpEnableа также SecureNatEnable (Вы не должны, но, возможно, нужно запустить NatEnable в зависимости от вашей конфигурации) на вашем сервере, если вы не можете настроить работу dhcp или internet после того, как вы подключили клиента через эти шаги или dhclient Команда не сработала. Я не уверен, потребуется ли перезагрузка вашего сервера после его обновления.

РЕДАКТИРОВАТЬ: SecureNatEnable включит NAT и DHCP.

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