Sam*_*us_ 7 networking linux vpn ssh
我在 Intranet 上有一台 Linux 机器,我只能通过 SSH 访问,这台机器需要使用 openconnect 连接到 VPN,但是当我这样做时,由于 Intranet 的 IP 不再有效,我与 SSH 断开了连接。
我可以使用它分配的 IP 从 VPN 内重新连接到它,但是每次连接 VPN 时 IP 都会更改,我无法控制任何其他网络,只有这台机器。
有没有办法在连接到 VPN 时保持 SSH 连接有效?谢谢。
openconnect 需要一个 --script 参数,它需要一个脚本来配置路由,没有它连接成功但没有解析名称并且内网的 IP 保持有效。
我目前正在使用 Ubuntu 的默认 /etc/vpnc/vpnc-script(粘贴在这里)我很擅长 shell 脚本,但我对网络知之甚少,如果我必须修改它,我需要一些关于什么或如何的参考改变它。
您应该使用--script的--script-tun选项openconnect并提供自定义 vpnc-script。一个好的起点是vpnc-script已经与您一起分发的openconnect,例如在 OSX(HomeBrewed openconnect) 上它位于/usr/local/etc/vpnc-script。
注意,根据openconnect官方文档:
OpenConnect只处理与VPN服务器的通信;它不知道如何在其运行的所有各种操作系统上配置网络路由和名称服务。
为了设置路由和名称服务,它使用通常称为 vpnc-script 的外部脚本。
已经有一个名为 ocproxy 的好项目,它充当 的代理服务器openconnect,因此名称为 ocproxy(O pen Connect Proxy)。
ocproxy是基于lwIP的OpenConnect的用户级SOCKS和端口转发代理。使用 ocproxy 时,OpenConnect 仅处理用户专门向代理请求的网络活动,因此 VPN 接口不再“劫持”主机上的所有网络流量。
echo $1 | sudo openconnect -u $2 -d --timestamp -v --passwd-on-stdin --script-tun --script "ocproxy -D $3 -v" $4
代替:
$1包含:OpenConnect 密码$2其中:OpenConnect 用户名$3其中:所需的 Socks5 代理端口$4其中:OpenConnect 服务器地址