我正在使用openconnect
连接到 vpn。输入凭据后,我得到以下信息:
POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection
Run Code Online (Sandbox Code Playgroud)
运行ifconfig
显示我有一个tun0
具有特定 IP 地址的新网络接口。
问题:如何ssh
只使用网络接口,tun0
以便我可以访问该专用网络上的计算机?
编辑:
我的网络配置 ( route -n
) 似乎是这样的:
172.16.194.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.25.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.0.1 …
Run Code Online (Sandbox Code Playgroud) 我遇到了一些难题,但找到解决方案的运气并不好。现在我(遗憾地)通过 Verizon 3G 连接到网络。他们过滤所有传入的流量,所以我不可能打开端口来接受连接。
我目前在 linode.com 上有一台 Linux 虚拟机,我想到要安装pptpd
并尝试进行一些iptables
端口转发。我已经pptpd
安装,我的家用机器连接愉快。也就是说,这里有一些一般信息:
服务器 (Debian) WAN IP: xxxx on eth0 - pptpd IP: yyy1 on ppp0 - 客户端 VPN IP: yyy100
为了验证我没有发疯,我尝试了一些从服务器到客户端开放端口的连接,并且客户端确实通过 VPN IP 接受了这些连接。
我想要完成的是:
Internet -> WAN IP:Port -> 转发到客户端 VPN IP:Port
例如,如果我在我的客户端上打开了 6000 端口,那么一个人可以远程登录到 xxxx:6000,服务器会捕获它并将其转发到 192.168.3.100:6000。
我已经尝试了至少 20 种不同的 Google 搜索iptables
配置,但都没有奏效。有没有人有任何想法,或者甚至是我可能不知道的完全不同的方法?这里的目标是通过可怕的防火墙连接侦听,最好是 TCP 和 UDP 流量。
我有一个远程主机,以前我可以用 root 和密码 ssh 进入它
ssh root@remote_host
Run Code Online (Sandbox Code Playgroud)
或者我首先使用普通用户帐户 ssh 进入它
ssh esolve@remote_host
Run Code Online (Sandbox Code Playgroud)
然后su root
输入密码
但是今天,在这两种方式中,我的密码总是不正确,例如
[esolve@local esolve]$ ssh root@remote_host
root@remote_host's password:
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)
或者
[esolve@remote_host ~]$ su root
Password:
su: incorrect password
Run Code Online (Sandbox Code Playgroud)
相关信息:
如果我今天在该远程机器上本地操作,我可以使用此密码以 root 登录。
我通过 VPN ssh 进入
为什么会这样?我怎么解决这个问题?
CheckPoint 的官方 Checkpoint out 命令行工具,用于设置 SSL Network Extender VPN 不再从 Linux 命令行工作。CheckPoint 也不再积极支持它。
然而,有一个很有前途的项目,它试图复制 Java 小程序进行身份验证,它与snx
名为snxconnect
.
我试图让snxconnect
文本实用程序在 Debian Buster 中工作,这样做:
sudo pip install snxvpn
Run Code Online (Sandbox Code Playgroud)
和
export PYTHONHTTPSVERIFY=0
snxconnect -H checkpoint.hostname -U USER
Run Code Online (Sandbox Code Playgroud)
但是,它大多因 HTTP 错误而死亡:
HTTP/1.1 301 Moved Permanently:
Run Code Online (Sandbox Code Playgroud)
或者:
Got HTTP response: HTTP/1.1 302 Found
Run Code Online (Sandbox Code Playgroud)
或者:
Unexpected response, try again.
Run Code Online (Sandbox Code Playgroud)
该怎么办?
附注。EndPoint Security VPN 官方客户端在 Mac High Sierra 和 Windows 10 Pro 中运行良好。
我正在尝试建立一个 VPN(使用 OpenVPN),以便所有流量,只有流量,去往/来自特定进程,通过 VPN;其他进程应该继续直接使用物理设备。我的理解是,在 Linux 中执行此操作的方法是使用网络命名空间。
如果我正常使用 OpenVPN(即通过 VPN 从客户端汇集所有流量),它工作正常。具体来说,我像这样启动 OpenVPN:
# openvpn --config destination.ovpn --auth-user-pass credentials.txt
Run Code Online (Sandbox Code Playgroud)
(destination.ovpn 的编辑版本在这个问题的末尾。)
我被困在下一步,编写将隧道设备限制为命名空间的脚本。我试过了:
将隧道设备直接放在命名空间中
# ip netns add tns0
# ip link set dev tun0 netns tns0
# ip netns exec tns0 ( ... commands to bring up tun0 as usual ... )
Run Code Online (Sandbox Code Playgroud)
这些命令成功执行,但在命名空间内产生的流量(例如 with ip netns exec tns0 traceroute -n 8.8.8.8
)落入了一个黑洞。
假设“您[仍然]只能将虚拟以太网(veth)接口分配给网络命名空间”(如果属实,将获得今年最荒谬的不必要的API限制奖),创建一个veth对和一个网桥,以及将 veth 对的一端放在命名空间中。这甚至不会让地面上的流量下降:它不会让我将隧道放入桥中![编辑:这似乎是因为只能将分接头设备放入网桥。与无法将任意设备放入网络命名空间不同,这实际上是有道理的,网桥是以太网层的概念;不幸的是,我的 VPN 提供商不支持 Tap 模式下的 OpenVPN,所以我需要一个解决方法。]
# ip addr add …
Run Code Online (Sandbox Code Playgroud)可以.ovpn
通过 GUI 工具将文件导入NetworkManager nm-connection-editor
(右键单击nm-applet
并单击Edit connections
):Add
-> Import a saved VPN configuration...
。
我的目标是做同样的事情,但通过命令行使用nm-cli
. 有可能吗?
我正在将 Arch Linux 与 Gnome 一起使用,我想用它openconnect
来连接到 VPN 服务器。我可以在命令行中毫无问题地执行此操作,但我无法使用 Gnome 执行此操作;我收到以下错误:
NetworkManager[589]: <error> [1475998103.4381] vpn-connection[0x28a9530,dc5d3708-967d-4e50-90ac-d0c892fe8ab3,"nm-vpn-connection.c",0]: Failed to request VPN secrets #3: No agents were available for this request.
Run Code Online (Sandbox Code Playgroud)
该ArchLinux的维基建议去做:
ln -s /usr/lib/networkmanager/nm-openconnect-auth-dialog /usr/lib/gnome-shell/
但这也不能解决问题。
当我点击连接时出现问题;我无法激活与 Gnome 和 NetworkManager 的 VPN 连接。
我已经使用 WSL Bash/Ubuntu 好几年了,但由于某种原因,这个问题最近出现了。
DNS 无法解析任何名称,包括内部名称和外部名称。我第一次重新安装 WSL 时,我认为它可以工作一天……但现在不行了,即使我重新安装。
从 Windows Store 全新安装 Ubuntu 18.04:
user@hostname:~$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.
nameserver <DNS server from wi-fi NIC 1>
nameserver <DNS server from wi-fi NIC 2>
nameserver <DNS server from ethernet 2 (VPN) NIC 1>
search anyconnect.local
user@hostname:~$ ping google.com -c 1
ping: google.com: Name or service not known
user@hostname:~$ ping 8.8.8.8 -c 1
PING 8.8.8.8 (8.8.8.8) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Openswan(2.6.37 版)将 IPsec VPN 从本地网络连接到远程站点。当我只想连接到远程站点上的单个子网时,一切正常。但是,远程站点还有一个我想要访问的额外子网。
这是我的配置:
conn myConn
type=tunnel
left=192.168.139.14
leftsubnet=192.168.139.0/24
leftxauthclient=yes
right=X.X.X.X
rightsubnet=172.16.1.0/24
keyexchange=ike
auth=esp
authby=secret
phase2alg=3des-sha1
pfs=yes
Run Code Online (Sandbox Code Playgroud)
当我用 替换rightsubnet
时rightsubnets
,像这样:
rightsubnets={172.16.1.0/24 192.168.3.0/24}
Run Code Online (Sandbox Code Playgroud)
...然后连接创建成功,但只有列表中的最后一个子网可用。任何对子172.16.1.0
网上的任何 ping 操作的尝试都会失败。如果我交换子网的顺序,那么我可以 ping172.16.1.X
但不能 ping 另一个子网上的任何内容。就好像 Openswan 只使用列表中的最后一个子网来创建连接。
我在这里做错了吗?
我忽略了一些额外的信息(尽管我不确定它是否相关):我的 Openswan 客户端位于使用 NAT 的路由器后面,并且nat_traversal=yes
我的ipsec.conf
文件中有。
我已经在Ubuntu 22.04上安装了pulseUI VPN。设置 VPN 地址后,我收到一个对话框:“本机上未安装 Chromium 嵌入式浏览器 (CEF)。[...] 您要下载并安装 Chromium 嵌入式浏览器吗?”
我接受,然后会弹出一个进度对话框,显示“安装 Chromium 嵌入式浏览器”。但是,这似乎挂起,并且进度条在几个小时后永远不会填满。
vpn ×10
openvpn ×4
linux ×2
ssh ×2
arch-linux ×1
checkpoint ×1
command-line ×1
debian ×1
dns ×1
gnome ×1
ipsec ×1
iptables ×1
networking ×1
nmcli ×1
password ×1
root ×1
routing ×1
su ×1