OpenVPN сервер на Ubuntu 22.04, а клиент на MagicUI Android 10. Соединение успешно устанавливается, и клиент делает вид, что работает. Однако трафик по тоннелю не идёт. Android client выдаёт ошибку:
TUN write exception:
write_come: Invalid argument
В логах сервера есть зацепка:
023-01-12 19:09:07 us=407565 username@domain.org/X.X.X.X:60608 UDPv4 READ [85] from [AF_INET]X.X.X.X:60608: P_DATA_V2 kid=0 DATA len=84
2023-01-12 19:09:07 us=407590 username@domain.org/X.X.X.X:60608 TLS: tls_pre_decrypt, key_id=0, IP=[AF_INET]X.X.X.X:60608
2023-01-12 19:09:07 us=407612 username@domain.org/X.X.X.X:60608 PID_TEST [0] [SSL-0] [000222222222344444444444555566666667788888888888888999>>>>>>>>>>] 0:126 0:127 t=1673539747[0] r=[-3,64,15,1,1] sl=[2,64,64,528]
2023-01-12 19:09:07 us=407621 username@domain.org/X.X.X.X:60608 Bad LZO decompression header byte: 69
2023-01-12 19:09:07 us=414596 GET INST BY REAL: X.X.X.X:60608 [ok]
То есть, серверу не нравится байт заголовка декомрессии.
Конфиг сервераport 65535
proto udp
dev tun
ca rsa/ca.crt
cert rsa/server.crt
key rsa/server.key # This file should be kept secret
dh dh4096.pem
server 192.168.Y.X 255.255.255.0
server-ipv6 fdYY:YYYY:YYYY:Y::/64
topology subnet
push "route 192.168.Y.X 255.255.255.0"
push "route 192.168.Y.X 255.255.255.0"
push "route-ipv6 fdYY:YYYY:YYYY:Y::/64"
client-config-dir ccd
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 192.168.Y.X"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS fdYY:YYYY:YYYY:Y:XXXX:XXXX:XXXX:XXXX"
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
allow-compression yes
compress lz4-v2
push "compress lz4-v2"
comp-lzo adaptive
push "comp-lzo adaptive"
max-clients 50
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 7
mute 20
Конфиг клиентаclient
dev tun
proto udp
remote domain.org 65535
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
verb 3
mute 20
<ca>
-----BEGIN CERTIFICATE-----
Сертификат корневого CA
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
Сертификат клиента
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Сертификат промежуточного CA
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
Приватный ключ клиента
-----END ENCRYPTED PRIVATE KEY-----
</key>
В чём дело и почему OpenVPN сервер не может понять клиента? Как настроить OpenVPN клиент и сервер?