connect server by Easy connect

本文最后更新于:1 小时前

引言

公司正式的服务器使用了深信服,本文介绍深信服服务器的连接方法

连接正式服务器需要的vpn软件为EasyConnect,这个软件第一坑的地方就是官方下载需要登录深信服社区;我直接拒绝

后面我找到腾讯的下载地址:EasyConnect下载:腾讯软件下载

第二个不便的地方是开启VPN后本机所有的外网都没了,在找EasyConnect的时候,我意外发现了这个开源项目:docker-easyconnect

本文主要使用此项目

默认的从客户端(A)连接到服务器(B)的方法是直接连接

easy connect a b

开启EasyConnect后AB组成了一个局域网,导致A也没有网络了

而**docker-easyconnect**的作用是添加一个A1和服务器B通讯,而本机A只用和A1通讯,进而可以自由访问外网

easy connect a-a1-b

参照网上的攻略:用docker封印EasyConnect并连接远程桌面和数据库 - Jortana的文章 - 知乎

可以在本机的docker实现这样的功能,攻略中的A1就是本机docker环境,也可以是wsl

但是我的PC没有docker,于是将A1独立出来,放到另外的测试服务器上

实际上A1的作用就是堡垒机,本文也是创建一个堡垒机.

配置完成后实现的功能:

  • 本机可以百度搜索的同时连接深信服服务器
  • 局域网多个客户端(终端)可以同时连接到服务器
  • 可以直接使用ssh连接正式服务器
  • 可以直接连接到正式服务器上的任意本地服务比如数据库,因此就有直接debug正式服务的能力

解决方案

首先,参照官方方法安装安装docker-easyconnect

这里给出我的命令:

1
2
#192.168.1.101 为测试服务器Ip 即为A1
docker run --rm --name easyconnect --device /dev/net/tun --cap-add NET_ADMIN -ti -p 192.168.1.101:1080:1080 -p 127.0.0.1:8888:8888 -e EC_VER=7.6.7 -e CLI_OPTS='-d https://11.22.33.44:123 -u ssss -p xxxx' hagb/docker-easyconnect:cli

这是cli的连接方法

需要注意的是,知乎教程中用的是docker desktop,因此socket服务IP填的127.0.0.1,而我这里需要从外部访问测试服务器A1,因此1080端口的IP需调整为运行docker服务的地址,即192.168.1.101

假如一切正常,能看到user "ssss" login successfully!登录成功的提示


vnc登录

假如cli登录报错,可以使用vnc远程登录 官方文档有参数详细说明

我就遇到cli登录报错的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/usr/local/bin/start.sh: line 152: tigervncpasswd: command not found
WARNING: logging deactivated (can't log to stdout when daemonized)
/usr/local/bin/start.sh: line 158: tigervncserver: command not found
/usr/local/bin/start.sh: line 170: xclip: command not found
auto login is disabled
login failed!
svpn stop!
Terminated
auto login is disabled
login failed!
svpn stop!
Terminated
auto login is disabled
login failed!
svpn stop!
Terminated

经后续测试,这里原因为密码过期,后台强制换密码导致无法登录

easy_connect_change_password

因此,使用VNC方法登录换过密码后就能用cli登录了

这里给出我的vnc命令:

1
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=password -e DISABLE_PKG_VERSION_XML=1 -e URLWIN=1 -v $HOME/.ecdata:/root -p 192.168.1.101:5901:5901 -p 192.168.1.101:1080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.7

其中passwordvnc登录密码

arm64 和 mips64el 架构需要加入 -e DISABLE_PKG_VERSION_XML=1 参数

根据我这里的参数,使用vnc连接192.168.1.101:5901即可

配置Clash服务

还是可以参照知乎教程中Clash的配置方法,将IP改为192.168.1.101即可

我这里因为用到了订阅,因此使用Parsers

1
2
3
4
5
6
7
8
9
10
Parsers:
prepend-rules:
- IP-CIDR,192.168.0.11/32,深信服
append-proxies:
- {name: easyConnect, server: 192.168.1.101, port: 1080, type: socks5}
append-proxy-groups:
- name: 深信服
type: select
proxies:
- easyConnect

其中的prepend-rules我设置了固定的IP192.168.0.11,此为服务器IP地址;因为本地网段和服务器的网段会有冲突,因此手写了规则,如果网段不同则不需要

配置好后Update订阅即可看到Proxies

easy connect clash proxy

点击Check会发现Timeout,实际不影响

假如Clash的配置遇到问题可以看前文使用clash代理SSR的内网请求

配置Xshell

ssh的连接及正式服务器的服务连接使用xshell的功能

ssh连接服务器

假如xshell直连正式的服务器没问题可以跳过;我这里因为网段冲突及服务器本身是通过Clash连接的,因此需要额外配置

打开配置好的xshellSession配置,右键Properties(属性)Proxy(代理)Browse(浏览)新增一个

add proxy

Type(类型)Sockes5

Hostdocker-easyconnect服务(A1)的地址

ssh连接成功后可以在SSH Channel List(隧道窗格)中看到连接状态

ssh channel list

SSH Channel List可以通过在底部快速命令处右键打开

使用ssh tunnel创建 Outgoing转移规则

转移规则介绍可查看:Xshell本地转移规则讲解

此设置的目的是将服务器的端口映射到本地,比如将服务器B上面5432端口的pgsql服务映射到本地5234,这样可以直接用DataGrip等数据库工具设置localhost:5234直连正式数据库

将上面的创建的SSH Session复制并打开Properties(属性)SSHTunneling(隧道)新增一个

xshell ssh tunnel

Type(类型)选择Local(Outgoing)

Sourse Host(源主机)localhost 端口 5234

Destination Host(目标主机)填正式上需要访问的服务IP和端口

创建完开启Session连上服务器后可以看到Forwarding Rules(转移规则)的状态为Open

xshell forwarding rules

SSH Channel List可以通过在底部快速命令处右键打开

vnc登录

要代理VNC连接,只需参照ssh规则重新创建一个192.168.1.101:5901的转发规则即可

xshell vnc forwarding

此规则会将easyconnect服务器(192.168.1.101)上的5901端口映射到本地5901端口

此时使用vnc客户端连接localhost:5901密码password即可

127.0.0.1连接正式环境毕竟还是比较危险,所以我只在每次使用的时候开启docker-easyconnect服务,使用完毕立即停止

参考资料


connect server by Easy connect
http://blog.wangshuai.app/2025-05-06-深信服 本地 通过 Easy Connect及 ssh连接服务器/
作者
王帅
发布于
2025年5月6日
许可协议