Для построения туннеля можно использовать Cloak, конфиги гораздо проще xray:
root@test:~# cat /etc/cloak/cloak-server.json
{
"ProxyBook": {
"wireguard": [
"udp",
"127.0.0.1:12345"
]
},
"BindAddr": [
":443"
],
"BypassUID": [
"Lkpevo0X6lV5bn33Rl1QCQ=="
],
"RedirAddr": "mail.google.com",
"PrivateKey": "+EvmB2L2vKaLsh/ynQgJpyEzQ216Ec2c8svs7au+Y10="
}
root@test:~# cat /etc/cloak/cloak-client-wireguard.json
{
"Transport": "direct",
"ProxyMethod": "wireguard",
"EncryptionMethod": "plain",
"UID": "Lkpevo0X6lV5bn33Rl1QCQ==",
"PublicKey": "+GTHXOFTYJhRM4+xv9q+ZjSykSIMOLffIs8qJN/4V2Y=",
"ServerName": "mail.google.com",
"NumConn": 4,
"BrowserSig": "chrome",
"StreamTimeout": 300
}
На сервере, на внешнем интерфейсе, закрываем подключения к порту UDP:12345 средствами iptables или другими сетевыми фильтрами.
На клиенте запускаем:
cloak-client.exe -u -c C:\Windows\System32\cloak-client-wireguard.json -i 127.0.0.1 -l 12345 -s example.com -p 443
На клиенте WG настраиваем подключение на адрес прослушиваемый нашим Cloak-Client: 127.0.0.1:12345
То есть при данной схеме UDP трафик WG упаковывается в туннель TCP предоставляемый средствами cloak.
Если сработает блокировка, можно включить шифрование в конфиге cloak-client:
root@test:~# cat /etc/cloak/cloak-client-wireguard.json
{
"Transport": "direct",
"ProxyMethod": "wireguard",
"EncryptionMethod": "aes-256-gcm",
"UID": "Lkpevo0X6lV5bn33Rl1QCQ==",
"PublicKey": "+GTHXOFTYJhRM4+xv9q+ZjSykSIMOLffIs8qJN/4V2Y=",
"ServerName": "mail.google.com",
"NumConn": 4,
"BrowserSig": "chrome",
"StreamTimeout": 300
}