这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

Shell脚本 Toyo 260评论
广告
本文最后更新于 2018年9月20日 19:49 可能会因为没有更新而失效。如已失效或需要修正,请留言!

日常,日常。

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

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

注意:如果服务器同时安装了 锐速(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

下载并运行脚本后会出现脚本操作菜单,选择并输入 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/#配置参数解释

其他说明

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

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

运行优化说明

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

点击展开 查看更多

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

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

点击展开 查看更多

提示 wget: command not found 的错误

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

点击展开 查看更多

升级脚本

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

更新日志

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

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

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

点击展开 查看更多

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

赞 (138)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(260)个小伙伴在吐槽
  1. [信息] 开始下载/安装 服务脚本(init)...
    --2018-11-10 14:01:15--  https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/other/ocserv_debian
    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.196.133
    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.196.133|:443... connected.
    HTTP request sent, awaiting response... 404 Not Found
    2018-11-10 14:01:15 ERROR 404: Not Found.
    
    [错误] ocserv 服务 管理脚本下载失败 !
    insserv: script ocserv is not an executable regular file, skipped!
    
    安装过程错误,ocserv 卸载完成 !
    
    小野2018-11-11 03:04 回复
    • 报错原因:你没有使用最新脚本。
      Toyo2018-11-11 12:03 回复
      • 老大,你这个新脚本是0.11.8的版本啊,0.11.8很多客户端都会出奇奇怪怪的问题,连接不上的。 0.12.1版本最靠谱,几乎不会出连接问题。 我还是喜欢你那个能选择版本的脚本。
        小野2018-11-11 12:31 回复
        • 新版本 Ocserv 的脚本安装不上。
          Toyo2018-11-11 12:47 回复
  2. 安装了以后PC能正常使用,而WP端却不能使用(错误码2250) 这算啥情况
    坐和放宽2018-11-04 16:04 回复
  3. Debian9成功安装,但是anyconnect输入用户名密码后连接闪断,客户端提示SSL引擎遇到问题(android),服务端显示未知错误。
    2018-11-02 23:11 回复
  4. 有个问题,安装完成后使用ocserv -f -d 1命令测试时出现:
    note: setting 'plain' as primary authentication method
    note: setting 'file' as supplemental config option
    listening (TCP) on 0.0.0.0:443...
    bind() failed: Address already in use
    listening (TCP) on [::]:443...
    bind() failed: Address already in use
    Could not listen to any TCP or UNIX ports
    请问这是什么问题啊?
    
    jameslxj2018-10-17 15:00 回复
    • 443端口被占用,请用 netstat -lntp 命令查看本地端口占用情况。
      Toyo2018-10-17 18:29 回复
      • [email protected]:~# netstat -lntp
        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
        tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      17958/ocserv    
        tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1578/sshd       
        tcp6       0      0 :::22                   :::*                    LISTEN      1578/sshd       
        [email protected]:~# 
        这样应该没问题啊??
        
        晓梦2018-10-17 20:21 回复
        • ocserv 已经启动了,不要重复运行。
          Toyo2018-10-17 22:28 回复
  5. 搭建好了,,用win10vpn连接时出现远程服务器名称问题没有解决是怎么回事呢????
    晓梦2018-10-17 10:07 回复
  6. 发现一个问题,最近用VPS架设翻墙服务器必须在已翻墙情况下架设,并且系统最好是win10,不要用win7~~~vultr上试了十几次得出的结论~~~多么痛的领悟~~~~
    jameslxj2018-10-12 08:53 回复
    • 什么鬼。。你远程操作VPS和你本地电脑系统无影响的。
      Toyo2018-10-12 10:19 回复
      • 那为啥每次我在vultr上开通服务器时IP还是好的,可装上了ocserv后IP就ping不通了,有时虽然可以ping通,但服务器还是连不上啊?
        jameslxj2018-10-17 14:47 回复
        • 装上 ocserv 后,时不时能 Ping 通?确定不是丢包?一般服务器只会在丢包的情况下出现该问题,否则要么是全都通,要么是Ping完全不通,而我的基本并不会去禁Ping,它们之间无关联。
          服务器连不上请检查是不是被墙了。能Ping通,但是TCPing或SSH连不上,多半就是被墙了。
          脚本只负责安装和管理 ocserv ,脚本自身并不会导致你的服务器被墙,但是 ocserv 可能会(现在没有哪个VPN是保险的了)。
          Toyo2018-10-17 18:35 回复
  7. 请问如何去掉这个配置? "脚本已默认配置好国内外分流路由表了(国内流量不走VPN),无需设置。"
    TJ2018-09-30 16:14 回复
    • 打开配置文件 /etc/ocserv/ocserv.conf ,删除底部所有开头是 no-route = xxx 的内容后重启服务端即可。
      Toyo2018-09-30 19:04 回复
      • 老大,首先谢谢你做这些优秀的教程,我也用你的教程成功搭了ssr,和ocserv,我现在有一个小问题,用谷歌云Debian GNU/Linux 9 (stretch),成功搭好了,客户端用的是anyconnect-win-4.2.04018-pre-deploy-k9.msi,可以连接上,刚连接上10秒内可以打开google.10秒过后就打不开了,我百思不得其解,还请大神帮我看看。多谢!
        andy2018-10-19 01:54 回复
  8. 我看见你有一篇文章是不建议在购买的VPS上安装代理的,我安装的是Shadowsocks 来科学上网的 会不会被封??
    haley2018-09-08 06:27 回复
    • 我从来没有说过“不建议在购买的VPS上安装代理”,我只说过:不建议在购买VPS时走代理(IDC网站走代理)。
      Toyo2018-09-08 12:41 回复
  9. 搭建成功后为什么会遇到pc端频繁掉线的情况?基本上连接上anyconect VPN不到一分钟就掉线了。我换了另一家vps重新搭建一次,还是这种情况。
    张飞2018-09-05 14:06 回复
  10. 我在网上搜索到一篇文章《轻松几步搭建 WireGuard (快速安全的下一代 VPN) 》,我设置的方法基本是复制粘贴。 PrivateKey = 是不是先执行 wg genkey 然后复制输出到的位置去取代? PrivateKey = #¥W345gdyY&$5ppp3 我之后再次执行 wg genkey ,输出却改变了,我要重新编辑 /etc/wireguard/wg0.conf 吗? 客户端是我这台机器吗? Endpoint = :56660 Server Public IP是我通过ssh登录VPS所使用的IP地址吗?他说是服务端可访问的公网IP,什么意思? 其它配置我多数是是复制粘贴,复制粘贴,复制粘贴,好像都没问题,dan连不上网,怎么回事?
    kkkkkkkkk2018-09-01 12:49 回复
    • [email protected]:~$ ping 10.0.0.1 
      PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
      64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=212 ms
      64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=183 ms
      64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=221 ms
      64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=201 ms
      64 bytes from 10.0.0.1: icmp_seq=5 ttl=64 time=233 ms
      
      测试通过
      
      
      
      [email protected]:~$ wget https://www.amazon.com
      --2018-09-02 12:26:50--  https://www.amazon.com/
      Resolving www.amazon.com (www.amazon.com)... 54.192.150.165
      Connecting to www.amazon.com (www.amazon.com)|54.192.150.165|:443... 
      
      卡了,不动了
      
      kkkkkkkkk2018-09-02 20:16 回复
  11. V1.03版,我这边用着非常好,几台小鸡上都有安装,共享给朋友用,一直很稳。V1.04版,在不同的服务器上(debian8, ubuntu16.04)上都频繁出现流量中断的故障---用ANDROID手机的OPENCONNECT客户端查看到日志,最后一条是SEND CSTP DPD,然后就没有了回应,没有数据流量,任何网站都打不开。同时我查看了连接1.03版服务器的客户端日志,SEND CSTP DPD后,客户端和服务端会立即重新建立连接。
    dickding2018-08-31 11:41 回复
    • v1.0.4 版本相比上一个版本,仅仅是修改了升级脚本的代码,不影响软件功能,应该是那段时间我修改了配置文件(ocserv.conf)导致的,我当时并没有做太多测试。
      你可以自行对比一下配置文件 /etc/ocserv/ocserv.conf ,排除法看看是哪个参数变更导致的问题,查到后务必告诉我,我修复下配置文件。
      配置文件更新记录可以看这个:https://github.com/ToyoDAdoubiBackup/doubi/commit/7f5ea45b2ae205a231593f13f4bc35de3d421493
      Toyo2018-08-31 13:18 回复
      • 和配置文件没关系。我直接拷贝老服务器上的配置文件过来,还是不行,有些苹果手机连接没有流量,有些疯狂掉线。用ANDROID手机的OPENCONNECT客户端略好些,但基本上半小时后就没了连接。
        dickding2018-09-03 15:55 回复
        • 那除了 配置文件变更以外,其他的都没变,脚本里安装的 VPN服务端版本号也是一样的。
          Toyo2018-09-03 19:32 回复
          • 应该和脚本无关。高度怀疑是墙对这协议的干扰加剧了。以前能用的服务器也有频繁掉线的情况发生。用你的脚本,别人的脚本,以及debian里用apt install ocserv安装的服务器,都有频繁掉线的现象。
            dickding2018-09-05 15:20 回复
            • 其实,只要是VPN都特征明显,一个是本身VPN的运作原理就很突出,另一个是VPN根本没有考虑过伪装、防屏蔽什么的。链接海外VPN,在防火墙看来,就差脸上写个我在翻墙了。VPN根本就不适合翻墙,也就几年前管的松还好,现在。。。
              思科VPN主要是企业用的多这个协议,不过这两年政府一直发文件催促企业VPN备案,估计等差不多的时候,VPN方式翻墙将彻底退出中国了。
              Toyo2018-09-05 20:55 回复
              • 确定是墙的锅。在国内的一台vps装上这个脚本,连接稳定完美。一旦连上国外VPS(系统,脚本完全相同),频繁掉线以及各种断流。。。
                dickding2018-09-07 14:49 回复
      • [email protected]:/home/dengandy6# ocserv -f -d 1
        note: setting 'plain' as primary authentication method
        note: setting 'file' as supplemental config option
        listening (TCP) on 0.0.0.0:11081...
        bind() failed: Address already in use
        listening (TCP) on [::]:11081...
        bind() failed: Address already in use
        Could not listen to any TCP or UNIX ports
        [email protected]:/home/dengandy6# 
        
        
        
        ocserv[1328]: worker[vpn01]: 116.22.1.237 setting up DTLS-0.9 connection
        ocserv[665]: main: 116.22.1.237:64696 user disconnected (reason: unspecified, rx: 0, tx: 0)
        ocserv[1328]: worker[vpn01]: 116.22.1.237 received BYE packet; exiting
        ocserv[1328]: worker[vpn01]: 116.22.1.237 sent periodic stats (in: 123307, out: 542665) to sec-mod
        ocserv[705]: sec-mod: invalidating session of user 'vpn01' (session: FhMwCE)
        ocserv[665]: main[vpn01]: 116.22.1.237:62784 user disconnected (reason: user disconnected, rx: 123307, tx: 542665)
        ocserv[1275]: worker[vpn01]: 116.22.1.237 received BYE packet; exiting
        ocserv[1275]: worker[vpn01]: 116.22.1.237 sent periodic stats (in: 1040746, out: 3002430) to sec-mod
        ocserv[705]: sec-mod: invalidating session of user 'vpn01' (session: eW6gwE)
        ocserv[665]: main[vpn01]: 116.22.1.237:64804 user disconnected (reason: user disconnected, rx: 1040746, tx: 3002430)
        老大,求教,连上10秒左右就断开了,这是日志,帮我看看吧。
        
        andy2018-10-19 10:42 回复
  12. 搭建成功后,大多数电脑正常使用,但是个别电脑会遇到,连接上之后5秒内掉线,在这五秒内是正常使用的,Google,Twitter都可以打开。再次连接上依然是5秒内掉线,重复了十几遍依然是这种情况。所以想向你反馈一下是什么原因。我用的vultr的debian8系统搭建的.
    刘伟2018-08-29 23:23 回复
  13. 请问如何使用证书登录?而不是使用密码?服务器端怎么设置为证书登录?
    掘井山人2018-08-25 03:37 回复
  14. :cool: 使用证书登录似乎比较方便,不知道能不能请你更新脚本增加使用证书验证登录呢?
    yortl2018-08-24 10:03 回复
  15. 會可升級到最新我版本 0.12.1 ?
    Jack2018-08-15 17:33 回复
    • 最新版本似乎修改了什么,导致会编译失败。
      Toyo2018-08-15 19:32 回复
  16. 那种自动登录的P12证书怎么弄啊。。。就是电脑导入后不用每次都输用户密码的那种
    AdventCirno2018-08-13 15:47 回复
  17. ocserv 一键安装管理脚本 [v1.0.4] Alternatively, you may set the environment variables LIBNETTLE_CFLAGS and LIBNETTLE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See `config.log' for more details make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target 'install'. Stop. [错误] ocserv 编译安装失败,请检查! [email protected]:~# ./ocserv.sh
    doub.io2018-08-12 17:39 回复
    • 你是什么系统?
      看提示是缺少依赖:pkg-config,我的脚本默认安装了这个,还提示这个估计是安装失败了。
      CentOS:
      yum install pkg-config -y
      Debian / Ubuntu:
      apt-get install pkg-config -y
      
      Toyo2018-08-12 22:21 回复
      • checking for a sed that does not truncate output... /bin/sed
        checking for ctags... :
        checking for cscope... :
        checking for autogen... :
        checking whether to build with code coverage support... no
        configure: WARNING:
        ***
        *** autogen not found. Will not link against libopts.
        *** 
        checking for sighandler_t... yes
        checking for sig_t... yes
        checking for __sighandler_t... yes
        checking for struct ucred... yes
        checking for struct iphdr.ihl... yes
        checking size of unsigned long... 8
        checking whether byte ordering is bigendian... no
        checking for LIBNETTLE... no
        configure: error: Package requirements (nettle >= 2.7) were not met:
        
        No package 'nettle' found
        
        Consider adjusting the PKG_CONFIG_PATH environment variable if you
        installed software in a non-standard prefix.
        
        Alternatively, you may set the environment variables LIBNETTLE_CFLAGS
        and LIBNETTLE_LIBS to avoid the need to call pkg-config.
        See the pkg-config man page for more details.
        make: *** No targets specified and no makefile found.  Stop.
        make: *** No rule to make target 'install'.  Stop.
        [错误] ocserv 编译安装失败,请检查         Debian9
        
        andy2018-10-19 00:51 回复
  18. 这个anyconnect需要安装BBR加速吗?安装BBR加速会快一点吗?
    刘伟2018-08-07 21:56 回复
    • 这个 VPN 有 TCP和UDP两种模式,当时使用TCP时,BBR会加速,所以建议安装BBR。
      Toyo2018-08-08 00:57 回复
  19. 证书如何替换呢?强迫症希望能解决这个问题。。。
    1570032018-07-23 22:56 回复
  20. 在debain9上测试编译错误,只能按手动教程安装
    Xiao Muyu2018-07-23 20:47 回复
    • emmmmmm,好像是缺少pkg-config,手动编译里有一个安装依赖的命令,执行完这个,再来安装这个脚本就没问题了
      Satoshi Jek2018-08-06 15:18 回复
  21. Alternatively, you may set the environment variables LIBNETTLE_CFLAGS and LIBNETTLE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target `install'. Stop. [错误] ocserv 编译安装失败,请检查! [email protected]:~# 安装不成功
    HELLO2018-07-15 15:53 回复
  22. Debian8 谷歌云,安装成功,可以连接,连接后可以打开fb twitter和ins,但Google主页和youtube打不开是怎么回事呢希望大大指点一下
    kyletang2018-07-05 16:25 回复
    • 检查下是不是DNS地址 8.8.8.8 try
      john2018-07-22 09:15 回复
1 2 3