我想通过 SSH 隧道传输 OpenVPN 流量。我有
- 路由器后面的 OpenVPN 服务器在端口 4321 上运行
- 同一台机器上的 SSH 服务器,端口为 22
- 路由器将服务器 IP 的端口转发为 1234->22 和 4321->4321
服务器配置如下:
dev tun
proto tcp
port 4321
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_eqg0yy05M8ZkQjyy.crt
key /etc/openvpn/easy-rsa/pki/private/server_eqg0yy05M8ZkQjyy.key
dh /etc/openvpn/easy-rsa/pki/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "block-outside-dns"
push "redirect-gateway def1"
client-to-client
keepalive 10 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
我的客户端如下所示:
client
dev tun
proto tcp-client
remote localhost 4321
route [my public IP] 255.255.255.255 net_gateway
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_eqg0yy05M8ZkQjyy name
cipher AES-256-CBC
auth SHA256
comp-lzo
verb 3
<ca>
-----BEGIN CERTIFICATE-----
如果我在我的 Ubuntu 笔记本电脑上使用这些服务器和客户端配置文件,并执行
ssh user@[my public IP] -p 1234 -L 4321:localhost:4321
和
sudo openvpn --config client1.ovpn
有用!
但在 Android 上我无法让它工作。我使用 ConnectBot(很多人都建议使用它),我可以在 ConnectBot 上设置到我的 SSH 服务器的连接,并且我有一个本地端口转发 4321 -> localhost:4321。
当我运行带有主动端口转发的 SSH 时,我尝试将我的 OpenVPN 与官方应用程序连接(实际上是官方应用程序和两部 Android 手机),ConnectBot 提示“连接丢失”,我的隧道被破坏了。为什么使用与我的 PC 上相同的配置“路由 [我的公共 IP] 255.255.255.255 net_gateway”连接也会中断?
答案1
这个问题已经很老了,但是由于没有可接受的答案,我认为我的回答可能会对遇到这个问题的任何人有所帮助......
发生这种情况的原因是,一旦 VPN 客户端连接,通过 ssh 隧道的数据包就被强制通过 VPN 应用程序。这就是为什么 VPN 应用程序一眨眼就立即连接,导致数据包通过 VPN 应用程序,从而断开 SSH 连接。
解决方案是在 vpn 应用程序中排除 ssh 隧道应用程序。这在 中是不可能的OpenVpn Connect
。但是,每个配置文件OpenVpn For Android
都有一个Allowed Apps
选项卡,允许您ConnectBot
根据自己的情况排除 ssh 隧道应用程序。
Routing
您可能还想在配置文件选项卡的 IPv4 和 IPv6 部分中选择“使用默认路由” 。
答案2
我没有通过 ssh 隧道使用 openvpn 的经验。但我使用了很多 openvpn 客户端应用程序,其中大多数都与我的 openvpn 设置存在问题。你可以尝试使用我目前正在使用的并且运行良好的应用程序:适用于 Android 的 OpenVPN