logo NodeSeekbeta

在外通过SSL VPN接入内部网络教程

前言:可以在外快速接入内部局域网(公司或家庭),访问内部的其他主机(服务器、NAS等),可以在陌生的网络中快速安全的进行连接,默认网络为全局代理,有软路由可以实现一些特殊的功能。

安装和配置

0.准备一台linux虚拟机,博主测试的为Debian12 4c4g60g的配置,貌似1c2g就够,内网的网段为192.168.1.0/24

1.下载anylink并上传到虚拟机

https://github.com/bjdgyc/anylink/releases/download/v0.9.3/anylink-deploy.tar.gz

2.解压二进制包到/usr/local目录

tar -xzvf anylink-deploy.tar.gz -C /usr/local/

3.进入anylink目录

cd /usr/local/anylink-deploy

4.生成密码 123456 的密文,修改为你要设置的密码

./anylink tool -p 123456

Passwd:$2a$10$jvyk9vcpbPWbaDHKBwQ6VeOPDznYBki5NFzuQ3TwZMJw32oK9MEx.

5.生成jwt密钥

./anylink tool -s
Secret:7PPUaaVq_8ucDPr0PR9m5Lfdcvsy86Wy0ollSp3CTqMHeP1hp0gqCB5L6U8C0TZ4_kMWmYZXSqzzEzo

6.进入conf配置目录

cd conf

7.拷贝配置文件模板

cp server-sample.toml server.toml

8.上传SSL证书重命名为vpn_cert.crt、vpn_cert.key

没有的话可以到https://freessl.cn/申请

9.打开配置文件

nano server.toml

10.修改如下部分,其他保持不变:

#示例配置信息
#其他配置文件,可以使用绝对路径
#或者相对于 anylink 二进制文件的路径

#数据文件
db_type = "sqlite3"
db_source = "./conf/anylink.db"
#证书文件 使用跟nginx一样的证书即可
cert_file = "./conf/vpn_cert.crt"
cert_key = "./conf/vpn_cert.key"
files_path = "./conf/files"
profile = "./conf/profile.xml"
#日志目录,为空写入标准输出
#log_path = "./log"
log_path = ""
log_level = "debug"
pprof = false

#系统名称
issuer = "SSL VPN"
#后台管理用户
admin_user = "admin"
#pass 123456
admin_pass = "$2a$10$jvyk9vcpbPWbaDHKBwQ6VeOPDznYBki5NFzuQ3TwZMJw32oK9MEx."
jwt_secret = "7PPUaaVq_8ucDPr0PR9m5Lfdcvsy86Wy0ollSp3CTqMHeP1hp0gqCB5L6U8C0TZ4_kMWmYZXSqzzEzo"

#服务监听地址
server_addr = ":443"
#开启 DTLS, 默认关闭
server_dtls = false
server_dtls_addr = ":443"
#后台服务监听地址
admin_addr = ":8800"
#开启tcp proxy protocol协议
proxy_protocol = false

link_mode = "macvtap"

#客户端分配的ip地址池
ipv4_master = "ens192"
ipv4_cidr = "192.168.1.0/24"
ipv4_gateway = "192.168.1.1"
ipv4_start = "192.168.1.150"
ipv4_end = "192.168.1.160"

#最大客户端数量
max_client = 100
#单个用户同时在线数量
max_user_client = 3
#IP租期(秒)
ip_lease = 86400

#默认选择的组
default_group = "one"

#客户端失效检测时间(秒) dpd > keepalive
cstp_keepalive = 6
cstp_dpd = 10
mobile_keepalive = 15
mobile_dpd = 20

#设置最大传输单元
mtu = 1460

# 要发布的默认域
default_domain = "example.com"
#default_domain = "example.com abc.example.com"

#session过期时间,用于断线重连,0永不过期
session_timeout = 3600
auth_timeout = 0
audit_interval = -1

show_sql = false

#是否自动添加nat
iptables_nat = false

#启用压缩
compression = false
#低于及等于多少字节不压缩
no_compress_limit = 256

#客户端显示详细错误信息(线上环境慎开启)
display_error = false

11.创建日志文件目录

修改为自己配置的日志路径,不创建会启动失败,如果没有打开日志输出,可以跳过

mkdir /usr/local/anylink-deploy/log

12.打开profile.xml文件

nano profile.xml

<HostName>anylink vpn</HostName> # 第30行,最好与server.toml配置文件中的系统名称保持一
致,用于客户端区分
<HostAddress>vpn.test.com:443</HostAddress> # 第31行,客户端连接地址,域名加端口,或者
IP加端口

启动anylink

复制service文件到系统中

cp /usr/local/anylink-deploy/systemd/anylink.service /usr/lib/systemd/system/

启动anylink

systemctl start anylink

查看启动状态

systemctl status anylink

开机自动启动

systemctl enable anylink.service

浏览器访问后台管理

路由器映射443到8443和8800到8800,没有公网IP的可以用frp进行内网穿透

访问地址公网IP+端口(默认8800),输入账号(admin)和 密码(123456)点击登陆

https://vpn.test.com:8800/

登录后用户组列表-添加

用户列表-添加-填写pin、禁用opt、勾选用户组

客户端下载,移动端可以在应用商店搜索AnyConnect

https://www.123pan.com/s/2zg9-VSjy.html 提取码:ol2O

客户端添加地址vpn.test.com:8443,用户名和密码(pin)连接即可

其他模式比如tun模式需要NAT和添加静态路由,如需docker部署具体请参考GitHub

12
  • 技术贴帮顶

  • xhj003

  • yct020
    好复杂呀
    有没有UI界面
    一键脚本

  • @thex #3 没得,其实不复杂,docker简单

  • 来个简单点的教程

  • 能分流吗

  • @scyuns #6 默认全局,分流得自己写地址段

  • @cyolc932 #5 已经够简单了,基本全程复制粘贴就行 xhj010

  • 好帖 插个眼

  • 感觉有点麻烦 还是wg吧

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有15827位seeker

🎉欢迎新用户🎉