Zakariyya / blog

https://zakariyya.github.io/blog/
6 stars 1 forks source link

搭建OpenConnect,Ocserv,Cisco AnyConnect VPN服务端/客户端一整套 (1) #153

Open Zakariyya opened 2 years ago

Zakariyya commented 2 years ago

『原创』Ocserv 搭建 Cisco AnyConnect VPN服务端 一键脚本

注意:如果服务器同时安装了 锐速(ServerSpeed/LotServer),那么可能会导致 AnyConnect 连接上后无网络或者速度异常(慢),这时候请关闭锐速,BBR加速无影响。

系统要求

Debian 7+ / Ubuntu 14.04 +

推荐 Debian 8 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

此脚本不支持CentOS!

脚本版本

Ver: 1.0.5

安装步骤

检查PPP/TUN环境

首先要检查VPS的TUN是否开启(OpenVZ虚拟化的服务器很可能默认关闭)。

cat /dev/net/tun
# 返回的必须是:
cat: /dev/net/tun: File descriptor in bad state

如果返回内容不是指定的结果,请与VPS提供商联系开启TUN权限(一般控制面板有开关)。

执行下面的代码下载并运行脚本。

    wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/ocserv.sh && chmod +x ocserv.sh && bash ocserv.sh

这里为了防止源库丢失,我clone了一份

    wget -N --no-check-certificate https://raw.githubusercontent.com/Zakariyya/doubi/master/ocserv.sh && chmod +x ocserv.sh && bash ocserv.sh

下载并运行脚本后会出现脚本操作菜单,选择并输入1就会开始安装。

首先安装服务端,安装过程中会提示你添加第一个VPN账号(用户名和密码)以及TCP/UDP端口

    [信息] 开始设置账号配置...
    请输入 要添加的VPN账号 用户名
    (默认: admin):doubi

        用户名 : doubi

    请输入 要添加的VPN账号 密码
    (默认: doub.io):doubi233

        密码 : doubi233

    请输入VPN服务端的TCP端口
    (默认: 443):443

        TCP端口 : 443

    请输入VPN服务端的UDP端口
    (默认: 443):

        TCP端口 : 443

    [信息] 开始设置 iptables防火墙...

使用说明

进入下载脚本的目录并运行脚本:

./ocserv.sh

运行脚本后选择你要执行的选项即可。

ocserv 一键安装管理脚本 [vx.x.x]
-- Toyo | doub.io/vpnzy-7 --

0. 升级脚本
————————————
1. 安装 ocserv
2. 卸载 ocserv
————————————
3. 启动 ocserv
4. 停止 ocserv
5. 重启 ocserv
————————————
6. 设置 账号配置
7. 查看 配置信息
8. 修改 配置文件
9. 查看 日志信息
————————————

当前状态: 已安装 并 已启动

请输入数字 [0-9]:

其他操作

/etc/init.d/ocserv start
# 启动 ocserv
/etc/init.d/ocserv stop
# 停止 ocserv
/etc/init.d/ocserv restart
# 重启 ocserv
/etc/init.d/ocserv status
# 查看 ocserv 运行状态
/etc/init.d/ocserv log
# 查看 ocserv 运行日志
/etc/init.d/ocserv test
# 测试 ocserv 配置文件是否正确

配置文件:/etc/ocserv/ocserv.conf

账号配置文件:/etc/ocserv/ocpasswd

日志文件:/tmp/ocserv.log

如果你想要修改配置文件,请看参数解释:https://doub.io/vpnzy-6/#配置参数解释

auth = "plain[passwd=/etc/ocserv/ocpasswd]"
# 这个是登陆方式,plain[passwd=/etc/ocserv/ocpasswd] 代表使用密码登陆并且从 /etc/ocserv/ocpasswd 文件中读取用户名和密码 

# listen-host = [IP|HOSTNAME]
# 这个代表监听的IP或主机名,注释掉即可。

tcp-port = 443
udp-port = 443
# 这个代表 TCP和UDP监听的端口 默认443,如果端口被干扰或被占用,可以更换其他端口,端口号可分开

server-cert = /etc/ocserv/ssl/server-cert.pem
server-key = /etc/ocserv/ssl/server-key.pem
ca-cert = /etc/ocserv/ssl/ca-cert.pem
# 服务器证书和CA证书的位置

banner = "Welcome DOUB.IO"
# 欢迎文本,链接上VPN后,客户端会提示这个消息。

max-clients = 16
# 整个VPN最大链接客户端数量,默认为 0 无限。
max-same-clients = 2
# 同账号链接VPN最大客户端数量,默认为 0 无限。

rekey-method = ssl
# 加密方式 SSL

pid-file = /var/run/ocserv.pid
# PID(记录进程PID)文件位置

device = vpns
# 设备名(随意)

ipv4-network = 192.168.1.0
ipv4-netmask = 255.255.255.0

#ipv4-network = 192.168.1.0/24
#ipv6-network = fda9:4efe:7e3b:03ea::/48

#tunnel-all-dns = true
# 是否接管DNS解析请求到VPN服务器,true代表客户端的DNS请求全部由服务器处理。
# 考虑到一些情况下DNS请求全部由海外服务器解析的话,会出现很多问题,所以默认注释,需要的请删除 # 号。
dns = 8.8.8.8
dns = 8.8.4.4
# 服务端的DNS

# route = x.x.x.x
# no-route = x.x.x.x
# 路由表相关的,用来分流国内外流量。
# 本教程提供的配置文件中已经默认配置好了国内外分流路由表(国内不走VPN)。

# 使ocserv兼容AnyConnect
cisco-client-compat = true

其他说明

注意:如果服务器同时安装了 锐速(ServerSpeed/LotServer),那么可能会导致 AnyConnect 连接上后无网络或者速度异常(慢),这时候请关闭锐速,BBR加速无影响

脚本已默认配置好国内外分流路由表了(国内流量不走VPN),无需设置。

运行优化说明

建议在运行 ocserv前,执行一下这个命令,作用是提高系统的文件符同时打开数量,对于TCP连接过多的时候系统默认的 1024 就会成为速度瓶颈。

点击展开 查看更多

ulimit -n 51200

这个命令只有临时有效,重启后失效,如果想要永久有效,请执行:

echo "* soft nofile 51200
* hard nofile 51200" >> /etc/security/limits.conf

然后最后再执行一下ulimit -n 51200即可。

提示wget: unknown host “raw.githubusercontent.com” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS(以下两行一起复制 一起执行)。

点击展开 查看更多

echo -e "nameserver 8.8.8.8
nameserver 8.8.4.4" > /etc/resolv.conf

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

点击展开 查看更多

# CentOS系统:
yum install -y wget

# Debian/Ubuntu系统:
apt-get install -y wget

升级脚本

升级脚本只需要运行脚本,然后选择并输入 0 回车即可,会自动检测最新版本并下载,当然重新下载脚本文件也可以,会自动覆盖原文件。

更新日志

2018年09月12日,版本 v1.0.5

1. 新增 自动检测网卡名 ens3(Debian9 默认网卡名)。

另外,针对 CentOS Ubuntu 最新系统版本的网卡命名我也在脚本内加了说明(enpXSX)。

点击展开 查看更多

转载请超链接注明:逗比根据地 » 『原创』Ocserv 搭建 Cisco AnyConnect VPN服务端 一键脚本

责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!