Как маршрутизировать весь трафик через адаптер 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.