Я установил openvpn на debian VPS и настроил его, как Вы видите ниже:
port 1194
proto udp
dev tun
ifconfig 10.0.2.21 10.0.2.22
ifconfig-noexec
route-noexec
keepalive 10 120
persist-key
persist-tun
comp-lzo
verb 3
#fragment 1200
mssfix 1200
#reneg-sec 0
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
tls-server
tls-auth static.key 0
ca RastakCA.crt
cert ovpn.crt
key ovpn.key
dh ovpn_dh2048.pem
cipher BF-CBC # Blowfish (default)
cipher AES-128-CBC # AES
cipher DES-EDE3-CBC # Triple-DES
status openvpn-status.log
log openvpn.log
;log-append openvpn.log
И вот клиентская конфигурация:
client
dev tun
proto udp
remote a.b.c.d
ifconfig 10.0.2.22 10.0.2.21
redirect-gateway def1
tls-client
tls-auth static.key 1
ca CA.crt
cert ovpn_client.crt
key ovpn_client.key
cipher BF-CBC # Blowfish (default)
cipher AES-128-CBC # AES
cipher DES-EDE3-CBC # Triple-DES
comp-lzo
#fragment 1200
#reneg-sec 0
mssfix 1200
verb 3
теперь, когда я соединяюсь с ним на окнах (с openvpn-gui клиентом), все в порядке, но когда я использую ту же клиентскую конфигурацию для соединения в устройстве на базе Android (использующий openvpn подключение), я получаю соблюдающее предупреждение в стороне сервера:
Sat Jan 10 22:23:53 2015 WARNING: 'ifconfig' is present in local config but missing in remote config, local='ifconfig 10.0.2.21 10.0.2.22'
И также следующая ошибка в стороне клиента:
Tun interface setup failed: tun_builder_error: one of ifconfig or ifconfig-ipv6 must be specified
Я добавил следующую строку к файлу конфигурации сервера, и я успешно выполняюсь для соединения использования обоих окон и андроида clinets:
push "ifconfig 10.0.2.22 10.0.2.21"
но существует все еще другая проблема: когда я разъединяюсь вручную в устройстве на базе Android, серверный процесс умирает с этими строками журнала:
Sat Jan 10 23:30:44 2015 TCP/UDP: Closing socket
Sat Jan 10 23:30:44 2015 Closing TUN/TAP interface
Sat Jan 10 23:30:44 2015 SIGTERM[soft,remote-exit] received, process exiting
И я должен перезапустить демона сервера снова (в клиенте окон, у меня нет проблемы после разъединения вручную, и также у меня нет проблемы с устройством на базе Android, когда соединение проигрывает, не разъединяясь).
Какое-либо решение?
Я не нашел причину закрытия TUN сервером, но я мог решить проблему, добавив следующую строку кода в файл конфигурации сервера:
# Executed after TCP/UDP and TUN/TAP close.
down "/usr/sbin/openvpn --writepid /var/run/openvpn.server.pid --daemon ovpn-server --cd /etc/openvpn --config /etc/openvpn/server.conf"
Он автоматически перезагружает сервер каждый раз он падает.