镜像域名 doub.bid 提供给无翻墙能力的人访问,有能力的建议访问主域名:doub点io(防镜像替换 自己改点)
投稿文章 | 广告投放 | Telegram 群组 / 公告频道

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

Shell脚本 Toyo 155评论
文章目录
[显示]
本文最后更新于 2017年11月3日 10:09 可能会因为没有更新而失效。如已失效或需要修正,请留言!

日常,日常。

手动搭建教程:使用Ocserv 手动搭建 Cisco AnyConnect VPN服务端

客户端使用教程:Cisco AnyConnect VPN Windows/Android 平台客户端使用教程

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

系统要求

Debian 7+ / Ubuntu 14.04 +

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

此脚本不支持CentOS!

脚本版本

Ver: 1.0.3

安装步骤

检查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://softs.fun/Bash/ocserv.sh && chmod +x ocserv.sh && bash ocserv.sh

# 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ocserv.sh && chmod +x ocserv.sh && bash ocserv.sh

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

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

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

	用户名 : doubi

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

	密码 : doubi233

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

	TCP端口 : 443

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

	TCP端口 : 443

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

使用说明

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

./ocserv.sh

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

ocserv 一键安装管理脚本 [vx.x.x]
-- Toyo | doub.bid/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.bid/vpnzy-6/#配置参数解释

其他说明

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

运行优化说明

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

点击展开 查看更多

提示wget: unknown host “softs.fun” 之类的错误

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

点击展开 查看更多

提示 wget: command not found 的错误

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

点击展开 查看更多

升级脚本

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

更新日志

2017年08月02日,版本 v1.0.3

1. 新增 在安装出错的情况下,会自动启动卸载程序。

2017年06月04日,版本 v1.0.2

1. 修复 重启服务器后,ipv4防火墙转发未打开的问题。

2017年06月02日,版本 v1.0.1

1. 修复 通过脚本修改配置文件中TCP/UDP端口后,没有保存防火墙设置的问题

2017年05月29日,版本 v1.0.0

1. 推出 正式版。

转载请超链接注明:逗比根据地 » 『原创』Ocserv 搭建 Cisco AnyConnect VPN服务端 一键脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (99)or打赏
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(155)个小伙伴在吐槽
  1. 连接一段时间The secure gateway has reject the connection
    konoha2018-02-19 15:50 (3天前)回复
  2. vps同时装AnyConnect和SSR会不会降低被墙的几率呢(AnyConnect一直都连接)
    蓝白相间XD2018-02-19 14:57 (3天前)回复
  3. 出现连接被拒绝(The secure gateway has rejected the connection),以下方式亲测可以解决: 先卸载vps上的ocserv,然后卸载你的anyconnect客户端,下载并安装最新版的anyconnect(版本号4.5,逗比站上的不是最新版本)。重新在vps上安装ocserv,然后连接,就再也没出现过连接被拒绝的问题!总而言之还是旧版anyconnect可能出了点奇怪的bug所致。
    mfzjz2018-02-04 16:29 回复
    • 有没有最新版的。
      Toyo2018-02-05 15:43 回复
      • 我发现新版本还是会有这个问题。。。但是解决问题方法远比我想象的简单。。。。其实只要断开vpn后,任务管理器里结束anyconnect进程再重新打开anyconnect就可以了。。。
        mfzjz2018-02-20 11:16 (2天前)回复
  4. 同一个服务器上安装Shadowsocks与这个,这个速度稳定快啊。给力。
    一个逗逼2018-02-01 19:25 回复
  5. dibian7 上成功安装,使用时提示了192.168.1.1IP冲突不知道是怎么搞的,现在可以用了,不过在GCE上的debian9 安装失败,提示配置文件缺失。看来这个脚本适合debian7,GCE没有GCE只有8和9,手动安装也是这个失败提示,什么文件夹不存在,配置文件缺失。
    一个逗逼2018-02-01 19:18 回复
  6. 大佬,我导出了ca证书的p12后,导入手机,无法使用,导出p12用的是下面的命令,在ca证书目录下使用的 certtool --to-p12 --load-privkey ca-key.pem --pkcs-cipher 3des-pkcs12 --load-certificate ca-cert.pem --outfile user.p12 --outder
    xiuku2018-01-27 21:31 回复
  7. 我想问一下我设置成功之后为什么连接不上?IP账号密码都输入正确 出现了doub.bid的欢迎界面 之后就连接失败了 请问一下是什么原因呢? 20:21:20 The AnyConnect Downloader updates have been completed. 20:21:20 Establishing VPN session... 20:21:20 Establishing VPN - Initiating connection... 20:21:21 Disconnect in progress, please wait... 20:21:21 The secure gateway has rejected the connection attempt. A new connection attempt to the same or another secure gateway is needed, which requires re-authentication. 20:21:21 AnyConnect was not able to establish a connection to the specified secure gateway. Please try connecting again. 20:21:22 Ready to connect.
    JACK2018-01-14 20:23 回复
  8. 在VPS上面配置好,PC和手机都可以正常连接到VPS了,但是唯独手机上不了谷歌,YouTube,是安卓手机……麻烦您给我回复一下!如何解决!!!
    honey2018-01-03 22:29 回复
  9. 您好,这个未批嗯服务和vesta面板系统好像不能共存,应该是我技术的问题,防火墙也设置了,vesta自带防火墙,ssh也设置也防火墙,就是用不了,提示connection attempt has failed. 用ocserv -f -d 1,检测,提示bind()failed:address already in use,could not listen to any tcp or unix ports.请问这个问题如何解决,跟您学习下!
    honey2018-01-01 11:19 回复
  10. 证书警告问题已解决,证书链不完整
    IFmeet2017-12-25 01:17 回复
    • 这个是怎么解决的呢求解答一下~我一直提示证书错误
      JACK2018-01-13 19:32 回复
  11. 大神你好,为什么我弄完连接VPN就断网?
    lryx19932017-12-14 01:29 回复
  12. 设置了路由表,ANY启动成功,但客户端无法连接。。 这是我设置的路由表部分,请您帮忙参考下哪些地方不对。。 https://download.crosscngfw.ml/ips/anyconnect-noroute.txt
    CNSZTL2017-11-19 05:30 回复
    • 关于这个VPN,我写完脚本后就没再用过了,更详细的我也不了解。
      Toyo2017-11-19 12:18 回复
      • 会不会是路由表数据太大崩了? :lol:
        CNSZTL2017-11-21 22:55 回复
  13. debian9.1出错显示: [信息] ocserv 服务 管理脚本下载完成 ! [信息] 开始自签SSL证书... ocserv.sh: line 100: certtool: command not found [错误] 生成SSL证书密匙文件失败(ca-key.pem) ! 安装过程错误,ocserv 卸载完成 !
    呜咪2017-11-16 10:16 回复
    • 脚本安装依赖的时候,会安装 gnutls-bin 这个依赖,这个就是 certtool 等命令的依赖,可能是因为什么原因安装失败了,建议手动尝试安装( apt-get install gnutls-bin -y ),如果报错根据报错情况判断,或者尝试更换软件源来安装。
      Toyo2017-11-16 13:35 回复
    • Debian 9安装失败的原因是,本地软件包本版高于所需安装包依赖的版本号。解决方案是打开脚本,查看里面用apt-get命令安装的几个依赖包,换成用aptitude命令安装(aptitude install pkg-config build-essential libgnutls28-dev libwrap0-dev liblz4-dev libseccomp-dev libreadline-dev libnl-nf-3-dev libev-dev gnutls-bin -y),之后再运行一键脚本就可以了。如果电脑上没有aptitude,就先用root账户编辑命令apt-get install aptitude命令安装aptitude。
      混沌微弥2017-11-16 21:54 回复
  14. Debian9安装出错 ocserv.sh: line 100: certtool: command not found [错误] 生成SSL证书密匙文件失败(ca-key.pem) ! ocserv.sh: line 435: cd: /usr/local/share/man/man8: No such file or directory 安装过程错误,ocserv 卸载完成 ! ocserv.sh: line 102: certtool: command not found [错误] 生成SSL证书文件失败(ca-cert.pem) ! ocserv.sh: line 435: cd: /usr/local/share/man/man8: No such file or directory 安装过程错误,ocserv 卸载完成 ! ocserv.sh: line 118: certtool: command not found [错误] 生成SSL证书密匙文件失败(server-key.pem) ! ocserv.sh: line 435: cd: /usr/local/share/man/man8: No such file or directory 安装过程错误,ocserv 卸载完成 ! ocserv.sh: line 120: certtool: command not found [错误] 生成SSL证书文件失败(server-cert.pem) ! ocserv.sh: line 435: cd: /usr/local/share/man/man8: No such file or directory 安装过程错误,ocserv 卸载完成 ! mkdir: cannot create directory ‘/etc/ocserv/ssl’: No such file or directory mv: cannot stat 'ca-cert.pem': No such file or directory mv: cannot stat 'ca-key.pem': No such file or directory mv: cannot stat 'server-cert.pem': No such file or directory mv: cannot stat 'server-key.pem': No such file or directory [信息] 开始设置账号配置... [错误] ocserv 配置文件不存在 !
    SitandRelax2017-11-16 00:32 回复
    • Debian 9安装失败的原因是,本地软件包本版高于所需安装包依赖的版本号。解决方案是打开脚本,查看里面用apt-get命令安装的几个依赖包,换成用aptitude命令安装(aptitude install pkg-config build-essential libgnutls28-dev libwrap0-dev liblz4-dev libseccomp-dev libreadline-dev libnl-nf-3-dev libev-dev gnutls-bin -y),之后再运行一键脚本就可以了。如果电脑上没有aptitude,就先用root账户编辑命令apt-get install aptitude命令安装aptitude。
      混沌微弥2017-11-16 21:56 回复
  15. 脚本已经不能用了。创建子签证失败,自动回滚卸载。
    混沌微弥2017-11-13 10:05 回复
    • 当安装过程中出现致命错误,就会自动卸载,避免残余。
      Toyo2017-11-13 14:38 回复
      • 我找到原因了。Debian 7和Debian 8可以正常安装。Debian 9由于一些依赖包级别太高导致不能正常安装。可以找到页面上不能安装的包名称,然后用aptitude命令安装。安装好之后再运行bash脚本就可以正常安装了。 :grin:
        混沌微弥2017-11-14 16:08 回复
      • 建议将bash脚本中的apt-get替换成aptitude命令。这样在安装新包的时候可以解决依赖问题。我是菜鸟,不是特别懂,说错请大佬指正。
        混沌微弥2017-11-14 16:20 回复
  16. 大佬,我用的是搬瓦工的CN2的VPN,按照教程建了VPN,但速度很慢,是什么原因?有加速的工具吗?还是说这个VPS不适合,需要更换?
    jackwong2017-11-10 00:51 回复
  17. 用的阿里云,客户端登陆时出现这个错误。更新源已换,安装过程没提示有什么错误。AnyConnect was not able to establish a connection to the specified secure gateway. Please try connecting again.
    Aaron2017-11-07 03:25 回复
  18. dalao,你好啊,这个anyconnect能不能将端口改为udp53端口,以达到某种特殊不可告人目的的啊?
    saya2017-11-04 17:04 回复
  19. 不应该还有自建证书的教程吗?😂
    CBF2017-11-02 09:29 回复
  20. 证书安装过程出错,有类似情况吗
    CBF2017-10-30 12:53 回复
  21. 怎么样弄分流?
    teny2017-10-25 11:14 回复
    • 给你提示:服务端配置文件中的路由表,具体的我也不清楚。
      Toyo2017-10-25 12:19 回复
  22. 你好,为什么这个脚本安装完成后无法在ios客户端导入证书!
    itmAn2017-10-21 14:29 回复
  23. ocserv[9706]: worker[zhghoi]: 116.25.133.1 received BYE packet; exiting ocserv[9706]: worker[zhghoi]: 116.25.133.1 sent periodic stats (in: 64502, out: 28506) to sec-mod ocserv[9487]: sec-mod: invalidating session of user 'zhghoi' (session: DHC/4w) ocserv[9485]: main[zhghoi]: 116.25.133.1:57045 user disconnected (reason: user disconnected, rx: 64502, tx: 28506) ocserv[9718]: worker: could not disable system calls, kernel might not support seccomp ocserv[9487]: sec-mod: session open but with non-existing SID! ocserv[9485]: main: 116.25.133.1:57061 could not open session ocserv[9485]: main: 116.25.133.1:57061 failed authentication attempt for user '' ocserv[9718]: worker: 116.25.133.1 failed cookie authentication attempt ocserv[9485]: main: 116.25.133.1:57061 user disconnected (reason: unspecified, rx: 0, tx: 0) 这个是服务器日志
    Hayden2017-10-13 22:25 回复
  24. The secure gateway has rejected the connection attempt. A new connection attempt to the same or another secure gateway is needed, which requires re-authentication. 这个anyconnect的日志 大概是在说安全网关拒绝了连接 要重新认证什么的
    Hayden2017-10-13 22:22 回复
  25. 为什么我连上后秒断 提示reconnedting:XX.XX.XX.XX:XX 明明已经安装成功了
    Hayden2017-10-13 21:51 回复
  26. 这个教程现在还能用吗?
    jackwong2017-10-12 15:52 回复
  27. ~/ocserv/ocserv-0.11.8# wget -N --no-check-certificate https://softs.fun/Bash/ocserv.sh && chmod +x ocserv.sh &&_bash ocserv.sh --2017-10-08 17:46:40-- https://softs.fun/Bash/ocserv.sh Resolving softs.fun (softs.fun)... 69.12.67.44 Connecting to softs.fun (softs.fun)|69.12.67.44|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 20788 (20K) [application/octet-stream] Saving to: `ocserv.sh' 100%[===================================================================================================================>] 20,788 --.-K/s in 0s 2017-10-08 17:46:41 (44.7 MB/s) - `ocserv.sh' saved [20788/20788] -bash: _bash: command not found root@vultr:~/ocserv/ocserv-0.11.8# 小白表示理不清这个错误
    Cogman2017-10-08 17:49 回复
    • &&_bash ocserv.sh
      # 你的命令中多了一个符号“_”,这里应该是空格,而文章内的这段代码并没有这个符号,说明是你自己加进去的。
      
      Toyo2017-10-08 19:20 回复
      • Get!谢谢解答,复制时候没注意 :lol:
        Cogman2017-10-09 09:43 回复
1 2