Я пытаюсь настроить VPN-сервер на Raspberry Pi, однако получаю сообщение об ошибке[FAIL] Starting virtual private network daemon: server failed!
Я следовал нескольким разным руководствам, но ни одно из них не привело к созданию работающего сервиса. Я уверен, что где-то неправильно понял инструкцию, но может ли кто-нибудь помочь мне заставить это работать?
Pi работает под управлением Raspbian. Имеет статический IP 192.168.1.230. Маршрутизатор — 192.168.1.254.
Мой файл /etc/openvpn/server.conf гласит:
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo
ifconfig -a показывает:
eth0 Link encap:Ethernet HWaddr b8:27:eb:78:40:2b
inet addr:192.168.1.230 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18862 errors:0 dropped:35 overruns:0 frame:0
TX packets:16015 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1130316 (1.0 MiB) TX bytes:1997172 (1.9 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/var/log/openvpn содержит:
Fri Jul 4 18:32:39 2014 OpenVPN 2.2.1 arm-linux-gnueabihf [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Oct 12 2013
Fri Jul 4 18:32:39 2014 WARNING: --keepalive option is missing from server config
Fri Jul 4 18:32:39 2014 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from $
Fri Jul 4 18:32:39 2014 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri Jul 4 18:32:39 2014 Diffie-Hellman initialized with 2048 bit key
Fri Jul 4 18:32:39 2014 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Fri Jul 4 18:32:39 2014 Socket Buffers: R=[163840->131072] S=[163840->131072]
Fri Jul 4 18:32:39 2014 ROUTE default_gateway=192.168.1.254
Fri Jul 4 18:32:39 2014 TUN/TAP device tun0 opened
Fri Jul 4 18:32:39 2014 TUN/TAP TX queue length set to 100
Fri Jul 4 18:32:39 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Jul 4 18:32:39 2014 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Fri Jul 4 18:32:39 2014 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Fri Jul 4 18:32:39 2014 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Fri Jul 4 18:32:39 2014 GID set to nogroup
Fri Jul 4 18:32:39 2014 UID set to nobody
Fri Jul 4 18:32:39 2014 UDPv4 link local (bound): [undef]
Fri Jul 4 18:32:39 2014 UDPv4 link remote: [undef]
Fri Jul 4 18:32:39 2014 MULTI: multi_init called, r=256 v=256
Fri Jul 4 18:32:39 2014 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Fri Jul 4 18:32:39 2014 Initialization Sequence Completed
Обновление 13 июля 14
Команда ps aux | grep openvpn
показывает:
nobody 2269 0.0 0.2 5072 1192 ? Ss Jul04 0:17 /usr/sbin/openvpn --writepid /var/run/openvpn.openvpn.pid --daemon ovpn-openvpn --cd /etc/openvpn --config /etc/openvpn/openvpn.conf
root 5140 0.0 0.1 3548 800 pts/0 S+ 08:54 0:00 grep openvpn
Команда netstat -l | grep 1194
не имеет выходных данных.
решение1
Вывод журнала и тот факт, что устройство tun отображается, ifconfig
говорит о том, что демон openvpn действительно запущен. Вы можете увидеть его в списке процессов, если запустите:
ps aux | grep openvpn
Команда запуска службы, вы запускаете ее как sudo/root? Если нет, она может пытаться настроить таблицы маршрутизации или управлять устройством tun, и у нее нет соответствующих разрешений.
Также убедитесь, что:
netstat -l | grep 1194
Показывает, что демон прослушивает UDP-порт 1194.
Вывод журнала показывает, что демону openvpn удалось создать устройство tun (и оно отображается в выводе ifconfig), поэтому я был бы очень удивлен, если бы демон на самом деле не работал. Если это так, и вы не sudo'ете управление службой, возможно, что-то не так со скриптом init.