У меня есть клиент OpenVPN в Windows 7, который соединяется с сервером OpenVPN с касанием.
Туннель устанавливает правильно.
AFAIK, коснитесь средств, что мой виртуальный адаптер 'фактически' подключен к удаленной LAN, получает удаленный IP LAN, и участвуйте в широковещательной передаче по локальной сети domani и так далее.
Когда туннель устанавливается, мой виртуальный адаптер получает корректный IP.
Но я не могу проверить с помощью ping-запросов другие хосты в удаленной сети.
Это могла бы быть проблема на sererver стороне, но прежде, чем проверить там, что я заметил что-то странное на стороне клиента в способе, которым Windows обрабатывает виртуальный интерфейс.
Давайте начнем.
Когда туннель произошел, виртуальный интерфейс произошел также. В моей таблице маршрутизации i видят мою физическую сеть 192.168.2.0, заражают мой локальный IP, 192.168.2.134.
Затем я вижу удаленную сеть 172.16.1.0, непосредственно присоединенную к моему интерфейсу 172.16.1.40.Пока все хорошо. (я удалил петлевые записи),
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.134 25 172.16.1.0 255.255.255.0 On-link 172.16.1.40 276 172.16.1.40 255.255.255.255 On-link 172.16.1.40 276 172.16.1.255 255.255.255.255 On-link 172.16.1.40 276 192.168.2.0 255.255.255.0 On-link 192.168.2.134 281 192.168.2.134 255.255.255.255 On-link 192.168.2.134 281 192.168.2.255 255.255.255.255 On-link 192.168.2.134 281 224.0.0.0 240.0.0.0 On-link 172.16.1.40 276 224.0.0.0 240.0.0.0 On-link 192.168.2.134 281 255.255.255.255 255.255.255.255 On-link 172.16.1.40 276 255.255.255.255 255.255.255.255 On-link 192.168.2.134 281
Таким образом клиенты в удаленной сети не должны быть достигнуты через шлюз, но посредством прямой маршрутизации через виртуальный интерфейс, обеспеченный openvpn.
Но когда я прослеживаю маршрут до хоста в удаленной сети (который мой ПК должен рассматривать как локальный), мой клиент направляет его на шлюзе, и очевидно, заблудиться.
C:\Users\agostinox>tracert 172.16.1.17 1 1 ms 1 ms 1 ms 192.168.2.1 2 14 ms 96 ms 101 ms 192.168.1.1 3 * * * Richiesta scaduta. 4 24 ms 12 ms 12 ms 172.17.129.137 5 * * * Richiesta scaduta.
И здесь кажется, что пакеты системных маршрутов прямо к шлюзу, поскольку это не видело непосредственно приложенный сетевой адаптер. Почему это происходит?
C:\Users\agostinox>openvpn --version OpenVPN 2.3.6 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Mar 19 2015 library versions: OpenSSL 1.0.1m 19 Mar 2015, LZO 2.08
И моя клиентская конфигурация:
remote xxx.xxx.xxx.xxx cipher AES-128-CBC port 1194 proto tcp-client dev tap ifconfig 172.16.1.40 255.255.255.0 dev-node "Connessione alla rete locale (LAN) 3" secret a_file_containing_my_preshared_key.key ping 10 comp-lzo verb 4 mute 10
Вот "резервное копирование" моей (pfsense) конфигурации сервера.
Поскольку Вы видите, что конфигурация в возможном минимуме.
<openvpn> <openvpn-server> <vpnid>2</vpnid> <mode>p2p_shared_key</mode> <protocol>TCP</protocol> <dev_mode>tap</dev_mode> <ipaddr /> <interface>wan</interface> <local_port>1194</local_port> <description><![CDATA[ test tap OpenVPN server]]> </description> <custom_options /> <shared_key>... my shared key, omitted ...</shared_key> <crypto>AES-128-CBC</crypto> <engine>none</engine> <tunnel_network /> <tunnel_networkv6 /> <remote_network /> <remote_networkv6 /> <gwredir /> <local_network /> <local_networkv6 /> <maxclients /> <compression>yes</compression> <passtos /> <client2client /> <dynamic_ip /> <pool_enable>yes</pool_enable> <topology_subnet /> <serverbridge_dhcp /> <serverbridge_interface /> <serverbridge_dhcp_start /> <serverbridge_dhcp_end /> <netbios_enable /> <netbios_ntype>0</netbios_ntype> <netbios_scope /> </openvpn-server> </openvpn>
Когда туннель произошел, это - вывод
ipconfig /all
Scheda Ethernet TAP-Interface: Suffisso DNS specifico per connessione: Descrizione . . . . . . . . . . . . . : TAP-Windows Adapter V9 Indirizzo fisico. . . . . . . . . . . : 00-FF-7B-FB-32-C0 DHCP abilitato. . . . . . . . . . . . : Sì Configurazione automatica abilitata : Sì Indirizzo IPv6 locale rispetto al collegamento . : fe80::3838:3c0c:c3c6:fcca%35(Preferenziale) Indirizzo IPv4. . . . . . . . . . . . : 172.16.1.40(Preferenziale) Subnet mask . . . . . . . . . . . . . : 255.255.255.0 Lease ottenuto. . . . . . . . . . . . : giovedì 16 aprile 2015 09:57:32 Scadenza lease . . . . . . . . . . . : venerdì 15 aprile 2016 09:57:32 Gateway predefinito . . . . . . . . . : fe80::20c:29ff:fe92:2272%35 Server DHCP . . . . . . . . . . . . . : 172.16.1.0 IAID DHCPv6 . . . . . . . . . . . : 1107361659 DUID Client DHCPv6. . . . . . . . : 00-01-00-01-14-AE-89-EA-F0-4D-A2-63-11-97 Server DNS . . . . . . . . . . . . . : fec0:0:0:ffff::1%1 fec0:0:0:ffff::2%1 fec0:0:0:ffff::3%1 NetBIOS su TCP/IP . . . . . . . . . . : Attivato
У меня такое чувство, что вы не настаиваете ваши маршруты правильно с сервера. Я заметил, что ваш шлюз для VPN - это IPv6-адрес.
Попробуйте использовать параметр push
в server.conf, чтобы протолкнуть ваши маршруты. Вы также можете добавить директиву server
, чтобы можно было зарезервировать клиентскую подсеть.
Если вы используете Linux, вам понадобится net.ipv4.ip_forward = 1
на VPN-сервере, также настроенном с помощью sysctl
.
С уважением,
-Иулиан
ನಿಮ್ಮ ತೆರೆದ ವಿಪಿಎನ್ ಸ್ಥಾಪನೆಯ ಬಿನ್ ಫೋಲ್ಡರ್ನಲ್ಲಿ OpenVPNgui.exe, openvpn.exe ಮತ್ತು openvpnserver.exe ಫೈಲ್ಗಳನ್ನು ಪತ್ತೆ ಮಾಡಿ. ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ವಸ್ತುಗಳ ಮೇಲೆ ಬಲ ಕ್ಲಿಕ್ ಮಾಡಿ, ಗುಣಲಕ್ಷಣಗಳನ್ನು ಆರಿಸಿ ಮತ್ತು ನಂತರ ಹೊಂದಾಣಿಕೆ ಟ್ಯಾಬ್. "ಈ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನಿರ್ವಾಹಕರಾಗಿ ಚಲಾಯಿಸಿ" ಚೆಕ್ ಬಾಕ್ಸ್ ಕ್ಲಿಕ್ ಮಾಡಿ, ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳ ಫಲಕವನ್ನು ಮುಚ್ಚಿ. ಓಪನ್ವಿಪಿಎನ್ನಿಂದ ಸಂಪೂರ್ಣವಾಗಿ ಮುಚ್ಚಿ (ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಯಾವುದೂ ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಲು ಟಾಸ್ಕ್ ಮ್ಯಾನೇಜರ್ ಬಳಸಿ). ಓಪನ್ ವಿಪಿಎನ್ ಅನ್ನು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಇನ್ನೊಂದು ಪ್ರಯತ್ನ ನೀಡಿ.
Не слишком хорошо разбирается в Windows. OpenVPN, FWIW, вот моя ставка на то, кто может быть виновен здесь:
Глядя на результат вашей команды маршрутизации Windows, похоже, что вы пропустили запись шлюза для сети OpenVPN. Правда, у вас есть адрес в сети VPN (адрес 172.16.1.40), но для этой сети не определен gw. На моем ящике у меня есть доступ к нескольким сетям, каждая из которых имеет свой собственный GW в следующем виде:
0.0.0.0.0 0 172.20.68.2 172.20.69.3 20
10.0.3.0 255.255.255.0 172.20.68.5 172.20.69.3 21
Чтобы исправить это, откройте конфигурацию вашего сервера openvpn и добавьте к ней строку вида:
push "route 172.16.1.0 255.255.255.0"
. Это гарантирует, что к клиенту будет проложен правильный маршрут при каждом подключении к серверу.
Вы также можете пропустить обратный маршрут - иногда (не всегда по причинам, которые я не совсем понимаю) вам нужно добавить iroute
к конфигурационному элементу, который у вас есть для данного клиента в каталоге сервера ccd
(/etc/openvpn/ccd/
). Это вызовет обратный маршрут, когда клиент подключается к серверу. Содержимое одного из моих ccd
файлов выглядит следующим образом:
iroute 192.168.87.0 255.255.255.0
Это гарантирует, что сервер OpenVPN может корректно маршрутизировать данные обратно к клиенту
Я думаю, что вы также можете просто добавить iroute
s в конфигурацию основного сервера, но тогда они будут определены, даже если клиент не подключен. Это будет выглядеть следующим образом:
route 192.168.87.0 255.255.255.0 192.168.11.1
EDIT: Также обратите внимание, что запуск OpenVPN клиентов на Windows требует административных привилегий. В противном случае, OpenVPN не сможет добавлять маршруты и т.п. (как отмечено в комментариях к вашему вопросу). Лучше всего запустить его в качестве сервиса, чтобы соединения появлялись автоматически при загрузке. По крайней мере, это действительно хорошо работает в моих сценариях.
Я думаю, что это может заставить вас идти снова. OpenVPN действительно великолепен, и я успешно использую его как в бизнесе, так и в играх уже некоторое время :-)
.