1

Я успешно настроил клиент OpenVPN на своем маршрутизаторе, на котором запущен ddwrt, и я также настроил его для включения OpenVPN при запуске.

домашняя сеть => маршрутизатор ddwrt с OpenVPN клиентом => веб

Я могу видеть веб-интерфейс маршрутизатора и ssh в любой из моих домашних коробок Unix, если клиент OpenVPN не работает. Так что мне интересно , как я могу сделать то же самое , если клиент OpenVPN работает.

Я уверен, что мое домашнее сетевое соединение активно, потому что я набираю это прямо сейчас на своем Macbook, который подключен к маршрутизатору через Wi-Fi, а другой мой Macbook подключен к сети через личную точку доступа iPhone. Я делаю тестирование на втором MacBook.

Важная информация:

Межсетевой экран маршрутизатора выключен.

Информация о IP-маршрутизации

root@myrouter:~# ip route list
0.0.0.0/1 via 10.208.185.5 dev tun1 
default via my-wan-gateway-ip-here dev ppp0 
my-wan-gateway-ip-here dev ppp0  proto kernel  scope link  src my-real-ip-here
10.208.0.1 via 10.208.185.5 dev tun1 
10.208.185.5 dev tun1  proto kernel  scope link  src 10.208.185.6 
127.0.0.0/8 dev lo  scope link 
128.0.0.0/1 via 10.208.185.5 dev tun1 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
my-vpn-ip via my-wan-gateway-ip-here dev ppp0

Моя конфигурация OpenVPN запускает файл router-up.sh по умолчанию, который автоматически создается dd-wrt. Я не вносил никаких изменений в этот скрипт.

root@myrouter:/tmp# cat /tmp/openvpncl/route-up.sh 
#!/bin/sh
iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -D INPUT -i tun1 -j ACCEPT
iptables -I INPUT -i tun1 -j ACCEPT

Мои DNS-серверы (используя Comodo и OpenDNS)

root@myrouter:/tmp# cat resolv.dnsmasq
nameserver 8.26.56.26
nameserver 8.20.247.20
nameserver 208.67.222.222

Я также использовал сценарий, который нашел в сети, чтобы определенные IP-адреса могли обойти VPN. Этот скрипт является частью моего скрипта запуска (rc_startup). Мне нужно это, чтобы я мог играть в эту конкретную игру на своих планшетах.

#!/bin/sh
sleep 30
NO_VPN_LST="192.168.1.11 192.168.1.2"
[ -z "$NO_VPN_LST" ] && exit 0
WAN_GWAY="0.0.0.0"
while [ $WAN_GWAY == "0.0.0.0" ]; do
sleep 3
WAN_GWAY=`nvram get wan_gateway`
done
ip route add default via $WAN_GWAY table 10
for ipa in $NO_VPN_LST; do
ip rule add from $ipa table 10
done
ip route flush cache
exit 0

1 ответ1

0

Вероятно, проблема, с которой вы сталкиваетесь, связана с маршрутизацией по умолчанию / источнику.

Когда VPN не работает, потому что шлюз по умолчанию находится вне вашего интернет-соединения, но когда вы запускаете VPN, добавляются несколько новых маршрутов: «0.0.0.0/1 через 10.208.185.5 dev tun1 и 128.0.0.0/1 via 10.208.185.5 dev tun1 "Это приводит к тому, что шлюз по умолчанию становится конечной точкой VPN, а не обычным соединением.

Таким образом, есть 2 решения, в зависимости от того, что вам нужно сделать -

Более простое решение состоит в том, чтобы избавиться от этих двух линий, создающих шлюз по умолчанию, и запрограммировать (или заставить вашего провайдера программировать) определенные маршруты на вашем VPN-соединении, к которым вы хотите получить доступ через VPN. Это только вариант, если вы используете VPN для определенной цели - например, для подключения к корпоративной сети, но вам это не поможет, если вы пытаетесь скрыть свою личность в более широком Интернете.

Более сложное решение состоит в том, чтобы выполнить "маршрутизацию на основе источника" - что означает настройку 2-х таблиц маршрутизации - текущая является таблицей по умолчанию, со второй таблицей для ответа на вещи, которые поступают через обычное соединение напрямую, с другим маршрутом по умолчанию , Это не тривиально, но есть несколько ссылок, как это сделать, в том числе здесь и здесь (ключевые слова для Google будут "маршрутизация по источнику" или "маршрутизация политики" - если вы действительно хотите стать экспертом в этом но, возможно, вам нужно ознакомиться с LART - глава 4 посвящена политике маршрутизации)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .