Я использую VPN исключительно для получения выделенного/статического IP (потому что моя домашняя сеть имеет динамический IP из-за кабеля). Мне не важно скрывать свою личность и т. д. Я настроил VPN на своем маршрутизаторе с прошивкой Tomato, используя OpenVPN Client.
Я хочу, чтобы когда трафик попадает на IP VPN и попадает на мой маршрутизатор, в зависимости от IP, с которого пришел трафик, он перенаправлялся на определенное устройство в моей домашней сети. Каждому устройству в моей сети назначен статический IP, и в прошлом я использовал другой VPN, который использовал PPTP, и это просто работало, например, обычные правила переадресации портов Tomato работали отлично, и в зависимости от того, откуда пришел трафик, он автоматически направлялся на нужное устройство, подключенное к моему маршрутизатору.
Однако теперь, когда я использую VPN, который использует OpenVPN вместо PPTP, похоже, правила переадресации портов в Tomato больше не работают? Я не могу понять, как направить трафик на правильное устройство в моей домашней сети на основе номера порта и IP, с которого был отправлен запрос. Я заметил вкладку «Политика маршрутизации» на странице настройки клиента OpenVPN в Tomato, но для меня это бессмысленно.
Нужно ли мне добавить какой-то скрипт где-то в Tomato? Какие-то правила iptables или что-то еще? Кажется странным, что я не могу просто использовать страницу конфигурации переадресации портов в Tomato. Или мне просто нужно включить/отключить некоторые параметры на странице конфигурации клиента OpenVPN? Я не в своей тарелке, любой совет будет оценен по достоинству
решение1
Я думаю, что мойвопрос на Redditможет вам помочь.
Я продублирую это здесь:
Итак, после просмотра сассоциация, предоставляющая VPN, мы пришли к следующему решению.
192.168.1.1
это IP-адрес маршрутизатора по умолчанию, который можно изменить вhttp://192.168.1.1/basic-network.asp.YYY.YYY.YYY.YYY
— это IP-адрес VPN-туннеля.
Чтобы сохранить пользовательский скрипт, который будет запускаться при запуске VPN, включите JFFS в браузереhttp://192.168.1.1/admin-jffs2.asp. Сохраните настройки, и некоторые службы будут перезапущены (/jffs/ будет смонтирован).
Telnet на вашем маршрутизаторе:
telnet 192.168.1.1
Введите логин
root
и пароль, которые вы обычно используете для доступа к Tomato.Создайте и отредактируйте скрипт в /jffs/:
vi /jffs/vpnup.sh
Добавьте в скрипт следующее:
#!/bin/sh # Script to be run when the VPN is brought up # Use the VPN to route all packets through the tunnel. iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d YYY.YYY.YYY.YYY -j WANPREROUTING # Apply the port forwarding rules to the tunnel. iptables -I FORWARD 1 -i tun11 -s 0.0.0.0/0 -d 0.0.0.0/0 -m state --state NEW -j wanin
Сохраните и выйдите из vi, введя
Esc
,:
,w
,q
, затемEnter
.Сделайте скрипт доступным для чтения и выполнения только пользователю root:
chmod 700 /jffs/vpnup.sh
Выйдите из сеанса telnet:
exit
Добавьте следующую строку в элемент управления формы «Пользовательская конфигурация»http://192.168.1.1/vpn-client.asp, на вкладке «Дополнительно»:
up /jffs/vpnup.sh
Сохраните настройки.
(Пере)запустите VPN.
Теперь при каждом запуске VPN необходимо обновлять iptables для маршрутизации всего трафика через VPN и применять правила переадресации портов к его туннелю.
Некоторые полезные команды для отладки:
ip addr show
(наМаршрутизатор)ip route show
(наМаршрутизатор)iptables -nvL
(наМаршрутизатор)iptables -t nat -nvL
(наМаршрутизатор)tcpdump -ni any port 80
(наСервер)
Надеюсь, это поможет или поможет.