首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

尝试优化了一下 AnyConnect(ocserv)的配置, 欢迎大家测试.

  •  7
     
  •   halczy · 2015-01-03 09:41:29 +08:00 · 56325 次点击
    这是一个创建于 1511 天前的主题,其中的信息可能已经有所发展或是发生改变。

    优化了一下配置文件. 自己测试从原来1Mbps不到的速度提升到5Mbps左右. 通过iperf测试 电信到服务器的单线带宽是应该有20Mbps左右. 不知道大家有用ocserv架的AnyConnect使用情况是怎么样呢?

    欢迎大家测试一下, 看看速度如何.
    服务器地址: omicronpersei8.ml
    帐号: v2ex
    密码: v2ex
    高级选项 -> 网络漫游: 打开 (打开后可以自由切换网络不断线, 一天內断网自动重连)

    第 1 条附言  ·  2015-01-03 16:08:47 +08:00
    电信出口又开始大范围丢包了, 所以现在会很慢. 大家可以改天再试. 帐号我会尽量保持开通, 除非是有人故意捣乱.
    第 2 条附言  ·  2015-05-19 18:14:14 +08:00
    因原域名故障, 服务器地址改为: any.omicronplus.com
    236 回复  |  直到 2019-02-21 16:21:13 +08:00
    1  2  3  
        201
    halczy   2017-11-30 09:44:16 +08:00   ♥ 1
    @xiaoun001 前天去掉了一台服务器,因为流量用完了。周末有时间到调整一下。连上又马上断开是出现了一段时间的问题。
        202
    xiaoun001   2017-11-30 13:13:09 +08:00 via iPhone
    @halczy 感动 big,谢谢!
        203
    haha71   2017-11-30 21:48:43 +08:00
    最近 openconnect 是不是被干扰了,我 3 台服务器都很不稳定,基本连得上但访问不了网页,很麻烦
        204
    xiaoun001   2017-12-01 14:44:20 +08:00
    @halczy 大神,你好。我今天用 centos7.4 + openconnect-devel-7.06-1.el7.x86_64 + openconnect-7.06-1.el7.x86_64 重建了客户端环境,故障已消除,目前一切正常,谢谢!估计前述问题就是 openconnect-7.08 自带 BUG 了。非常感谢!
        205
    xiaoun001   2017-12-01 14:45:12 +08:00   ♥ 1
    @haha71 DTLS 起来木有啊?还有 DNS 是否被墙了?
        206
    halczy   2017-12-01 15:34:48 +08:00   ♥ 1
    @xiaoun001 昨天修改了 DPD 一些配置。不再由服务器下发 DPD,直接用客户端默认。 你用 7.08 版再试试吧。
        207
    halczy   2017-12-01 15:37:19 +08:00   ♥ 2
    @haha71 没有发现有这个现象。可能是线路不好或者 MTU 问题。

    sudo iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
        208
    xiaoun001   2017-12-01 23:01:47 +08:00
    @halczy 今天其它版本不重连了,能稳定开启 DTLS。但是,7.08 版本还是有问题,估计是本身 BUG 了,算啦,不纠结啦。谢谢!
        209
    junxiqqq   2017-12-03 21:31:49 +08:00
    @halczy 楼主,请教下,我的 DTLS 老是起不起来,怎么折腾都跑 TLS, 应该怎么去检查?非常感谢!
    ocserv 0.11.6, Debian 9.2, apt-get 安装的, 防火墙已关, 客户端 win10 anyconnect, 连楼主的服务器能跑 DTLS.
        210
    halczy   2017-12-03 21:40:35 +08:00
    @junxiqqq apt-get 的好像有这个问题,建议删除并清楚干净后用源码编译安装。嫌麻烦的话网上有一键安装的脚本。
        211
    junxiqqq   2017-12-03 22:10:59 +08:00
    @halczy 谢谢楼主的回复!
    刚才无意中发现了原因,但没法解释为什么会这样:
    apt-get 安装之后,ocserv.service 里有 require=ocserv.socket
    把这句注释掉,重新 systemctl disable/enable ocserv
    然后就 DTLS 了。。。明媚了~
        212
    xiaoun001   2017-12-04 11:16:27 +08:00
    @junxiqqq 我前几天 debian 也遇到了这个问题,死活 DTLS 起不来,看日志那个 IPv6 地址稀奇古怪的。就强制把系统 IPV6 栈给禁用了,结果 DTLS 起来了。
        213
    youwei5683   2017-12-05 14:04:14 +08:00
    @halczy 您好,我用 openwrt 的 openconnect 连接您的和我的服务器都报以下错误,请问应该如何排查。
    root@DingYongbin-Route:/# openconnect any.omicronplus.com
    POST https://any.omicronplus.com/
    Connected to 23.228.222.142:443
    SSL negotiation with any.omicronplus.com
    Connected to HTTPS on any.omicronplus.com
    XML POST enabled
    Please enter your username.
    Username:v2ex
    POST https://any.omicronplus.com/auth
    Please enter your password.
    Password:
    POST https://any.omicronplus.com/auth
    Got CONNECT response: HTTP/1.1 200 CONNECTED
    CSTP connected. DPD 600, Keepalive 32400
    Connected as 172.16.100.183 + 2001:470:f256:b3a0:4a76:850f:c975:5b29/128, using SSL
    SSL read error: Success.; reconnecting.
    SSL negotiation with any.omicronplus.com
    Connected to HTTPS on any.omicronplus.com
    Got CONNECT response: HTTP/1.1 200 CONNECTED
    Reconnect gave different Legacy IP address (172.16.100.204 != 172.16.100.183)
    sleep 10s, remaining timeout 300s
    SSL negotiation with any.omicronplus.com
    Connected to HTTPS on any.omicronplus.com
    Got CONNECT response: HTTP/1.1 200 CONNECTED
    Reconnect gave different Legacy IP address (172.16.100.196 != 172.16.100.204)
    sleep 20s, remaining timeout 290s
    SSL negotiation with any.omicronplus.com
    Connected to HTTPS on any.omicronplus.com
    Got CONNECT response: HTTP/1.1 200 CONNECTED
    Reconnect gave different Legacy IP address (172.16.100.71 != 172.16.100.196)
        214
    halczy   2017-12-05 22:08:37 +08:00
    @youwei5683
    openconnect https://any.omicronplus.com --servercert sha1:5e407e6524e4415be1102f9075d6a4597219d5de
        215
    youwei5683   2017-12-06 11:48:10 +08:00
    又有新的错误了。
    Connected as 172.16.100.18 + 2001:470:f04c:88f1:675b:b057:db9c:7052/64, using SSL
    Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(PSK)-(AES-256-GCM).
    Script '/lib/netifd/vpnc-script' returned error 1
    Script '/lib/netifd/vpnc-script' returned error 1
    Failed to write incoming packet: I/O error
    ^CSend BYE packet: Aborted by caller
    Script '/lib/netifd/vpnc-script' returned error 1
    User cancelled (SIGINT); exiting.
        216
    xiaoun001   2017-12-17 20:29:16 +08:00
    @halczy 大神,我用 he.net 建立了 IPv6 隧道,ping 任意公开 ipv6 地址能通。 设上 ipv6 dns 后,却不能够访问 youtube/google,能够访问国内的一些 ipv6 测试站点。 不设置 ipv6dns 时候,用 firefox/chrome 访问 google/youtube,有的时候能够出来,有的时候不出来(走 IPV6 ),要多刷好几次才出来。真不明白是什么原理。大神能够指点一二。
        217
    halczy   2017-12-18 11:56:13 +08:00   ♥ 1
    @xiaoun001 OCSERV 好像不能推送 IPV6 DNS 到客户端
        218
    xiaoun001   2017-12-28 22:33:00 +08:00
    @halczy 经过折腾,终于找到 ipv6 不通的原因,是默认路由的问题。 关于 IPv6 DNS ,我在 OCSERV 上强制指定了一个 DNS,这个 DNS 是基于 DNSmasq 搭建的智能转发服务器,真正 DNS 设置在 DNSmasq 里面,现在差不多都是双栈 DNS,DNS 问题解决了。
    我有一个新问题: 你的 VPS IPv6 流量(运营商)计费不?
        219
    blackantt   2018-01-01 22:57:01 +08:00
    @halczy 在 openwrt 上装了个 openconnect 的 client, 但是其中一项要填 VPN Server's certificate SHA1 hash 这个值,1. 这个值在哪得到? 2. 似乎你的 server 用的是 sha 256 ? 该怎么填这个 sha1 值?
        220
    horizonl   2018-01-18 19:55:35 +08:00
    用一键脚本自搭了个 ocserv,证书登录,翻了好久没看到证书登录时咋分组使用。
        221
    xiaoun001   2018-01-31 15:14:37 +08:00
    @halczy 我打了 IPV6 隧道,用的是 IPV4 的 DNS,DNS 走隧道,其它走 HE.NET 6IN4 山隧道,yb ,go0gle ipv6 都能正常访问,很快,能够解析 IPV6 的地址,很多网站能够正常,一些不正常的,本身也没有需求。 移动客户端(苹果) IPV6 也正常了。无意中在哪里看到说分配 64 前缀的地址给客户端就会正常,申请了一块 /48 的地址,试了一下,的确成功了。
        222
    ioiioi   329 天前
    ocserv 的部署各显神通,有没有比较好的实践( best practice ),比如说,我在 windows 中安装了 anyconnect,但是没有 dnsmasq,这时候只能用 ocserv 下发的 dns,但是 8.8.8.8 又解决不了国内 cdn 的解析,得绕道。
    有没有好的部署方式推荐?
        223
    ioiioi   329 天前
    @xiaoun001 好复杂,你有没有把这些实施步骤写 blog,我想学习学习。
        224
    xiaoun001   321 天前 via iPhone
    @ioiioi 搞好后就几个月一直没有动了。 因为时间关系,没有写专门的东西,我的私家博客 https://toplz.net (搭建于树莓派 3,上述所有环境也都迁移在上面了,性能有些弱,一人玩玩还是够的) 收藏了很多技术贴,可以寻得其中技术轨迹。 其实也没啥复杂的,就是费功夫。 主要涉及 ocserv , he.net ipv6 隧道,openconnect 客户及具体参数,zebra 路由,dnsmasq 轻量级路由 ,免费 ssl 证书,iptables 防火墙策略,ip route2 路由策略方面。 这些就可以实现了。 当然了,如果还要架站,就需要 dnspod ddns,我还做了 Dlna , samba,xware 下载等。用 N 多自开发脚本 实现自动运维,关键就是太折腾,折腾提升技术。 不过回头想,花这么多精力,值得吗?
        225
    liuyinltemp   302 天前
    厉害,不过确实 anyconnenct 部署要比其他的复杂多了,学习一下
        226
    moksa   218 天前
    Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(PSK)-(AES-256-GCM).
    DTLS connection compression using LZS.
    Script '/lib/netifd/vpnc-script' returned error 1
    Script '/lib/netifd/vpnc-script' returned error 1
    Failed to write incoming packet: I/O error
    Failed to write incoming packet: I/O error
    Failed to write incoming packet: I/O error
    Failed to write incoming packet: I/O error
    Failed to write incoming packet: I/O error
    大神好,这种错误怎么解决的呢?
        227
    fvladlpa   65 天前
    @halczy 请问楼主,我自己建的服务器总是遇到一个问题就是能连上,但是上着上着就什么都打不开了。国内和国外都打不开,只有微信还能上,必须要断开 VPN 重新连才可以。有的时候设置是连上 VPN 直接就上不了需要断开重连。请问楼主是什么问题呢?是 MTU 的问题吗,iptables 里面我没有添加这条 iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
        228
    halczy   65 天前
    @fvladlpa

    try-mtu-discovery = false

    试试设置里面把 mtu-discovery 关掉
        229
    notgood   18 天前 via iPhone
    @halczy 谢谢大佬的 anyconnect
        230
    danwang929   7 天前
    楼主您好,我自己搭建好了 ocserv-0.12 ,可以连接上,但是电脑和手机连接上使用的协议是 tlsv1.2。死活就是不能用 dtls。现在已经参照在论坛里面指点其他人的方法,主要如下:
    注释掉 #switch-to-tcp-timeout = 25,dpd 和 mobile-dpd 改小一点,设置 tunnel-all-dns = false。
    但是还是不能使用 dtls,请问一下还有可以有什么地方出错吗?需要我贴出来什么东西帮助您分析? tcp/udp 端口使用的是同一个,防火墙也开启了相应的端口。
    请您指点一下。
        231
    halczy   6 天前 via Android
    @danwang929 设置估计没什么问题。DTLS 建立不了一般是 MTU 问题。你先用 Cisco 客户端在不同网络环境下测试一下,看看能不能建立。
        232
    danwang929   4 天前
    @halczy 我用家里的网、公司的网、自己的流量都测试过了,都不行。重新搭建了无数次也解决不了。不知道 mtu 有啥问题了?
        233
    halczy   4 天前
    @danwang929 是否能确定服务器的 UDP Port 是通的?
        234
    danwang929   4 天前
    @halczy 请教一下,有没有什么简单的方法测试这个 udp port ?百度里面的东西看不懂
        235
    halczy   4 天前
    @danwang929 我习惯是用 iperf3

    先安装 sudo apt install iperf3
    服务器执行 iperf3 -s -p UDP 端口号
    客户端的命令行执行 iperf3 -c 服务器 IP -R -u -p UDP 端口号

    如果没有报错,那就是 udp port 是通的。
        236
    danwang929   1 天前
    @halczy
    首先,我采用的是网上教的方法:
    我在 xshell1 中运行:tcpdump -i eth0 udp port 123 -vv -X。
    在 xshell2 中发送:nc -u 服务器 IP 123,发送数据时可以看到 xshell1 中有数据产生,发送多少,产生多少。
    测试结果说明 udp 是可以连通的。

    然后我用您教的 iperf3 测试,出现了两个情况。

    1.当 tcp 和 udp 是一个端口时,在服务器运行您给的 iperf3,提示:
    error - unable to start listener for connections: Address already in use.
    不理会上面的,我用 win10 的 cmd 运行 iperf3 提示:
    error - unable to receive control message: Connection reset by peer

    2.我把 udp 端口更改成其他的,在服务器端运行 iperf3 没有问题。
    在电脑 cmd 中运行,提示:error - unable to connect to server: Connection timed out.

    现在我也不知道我的 udp 端口到底是不是开通的了。
    1  2  3  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2361 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 12:08 · PVG 20:08 · LAX 04:08 · JFK 07:08
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1