有没有熟悉 openvpn 的同学给看看

240 天前
 fever
openvpn 两边 service 都启动起来了 连接不成功,或者说一连上就被重置了,似乎是拒绝了
服务端的转发有开 /etc/sysctl.conf
服务端的端口 51199 是正常开放的
看日志 Connection reset, restarting [-1] 这个错误也找不到相关解释


服务端配置:
proto tcp-server
dev tun
port 51199
ifconfig 10.10.4.1 10.10.4.2
tls-server
remote-cert-tls client
tls-auth /etc/openvpn/server/ta.key 0
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh2048.pem
cipher AES-128-CBC
comp-lzo adaptive
push "comp-lzo adaptive"
persist-tun
persist-key
verb 4
keepalive 10 60
user openvpn
group openvpn
log /var/log/openvpn_test.log
log-append /var/log/openvpn_test.log
route 192.168.144.0 255.255.248.0 vpn_gateway


客户端配置:
proto tcp-client
dev tun
remote x.x.x.x 51199
ifconfig 10.10.4.2 10.10.4.1
tls-client
remote-cert-tls server
tls-auth /etc/openvpn/server/ta.key 1
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh2048.pem
cipher AES-128-CBC
comp-lzo adaptive
persist-tun
persist-key
verb 4
keepalive 10 60
user openvpn
group openvpn
log /var/log/openvpn_us.log
log-append /var/log/openvpn_us.log
route 192.168.40.0 255.255.248.0 vpn_gateway



客户端日志:
2024-04-02 19:53:17 us=761923 Restart pause, 300 second(s)
2024-04-02 19:58:17 us=762021 Re-using SSL/TLS context
2024-04-02 19:58:17 us=762156 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2024-04-02 19:58:17 us=762173 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2024-04-02 19:58:17 us=762235 Control Channel MTU parms [ L:1559 D:1182 EF:68 EB:0 ET:0 EL:3 ]
2024-04-02 19:58:17 us=762253 Preserving previous TUN/TAP instance: tun4
2024-04-02 19:58:17 us=762271 Data Channel MTU parms [ L:1559 D:1450 EF:59 EB:395 ET:0 EL:3 ]
2024-04-02 19:58:17 us=762307 Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1559,tun-mtu 1500,proto TCPv4_CLIENT,ifconfig 10.10.4.1 10.10.4.2,keydir 1,cipher AES-128-CBC,auth SHA1,keysize 128,tls-auth,key-method 2,tls-client'
2024-04-02 19:58:17 us=762319 Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1559,tun-mtu 1500,proto TCPv4_SERVER,ifconfig 10.10.4.2 10.10.4.1,keydir 0,cipher AES-128-CBC,auth SHA1,keysize 128,tls-auth,key-method 2,tls-server'
2024-04-02 19:58:17 us=762331 TCP/UDP: Preserving recently used remote address: [AF_INET]xxxx:51199
2024-04-02 19:58:17 us=762362 Socket Buffers: R=[131072->131072] S=[16384->16384]
2024-04-02 19:58:17 us=762371 Attempting to establish TCP connection with [AF_INET]xxxx:51199 [nonblock]
2024-04-02 19:58:17 us=937632 TCP connection established with [AF_INET]xxxx:51199
2024-04-02 19:58:17 us=937679 TCP_CLIENT link local: (not bound)
2024-04-02 19:58:17 us=937689 TCP_CLIENT link remote: [AF_INET]xxxx:51199
2024-04-02 19:58:18 us=791085 Connection reset, restarting [-1]
2024-04-02 19:58:18 us=791173 TCP/UDP: Closing socket
2024-04-02 19:58:18 us=791200 SIGUSR1[soft,connection-reset] received, process restarting
2024-04-02 19:58:18 us=791215 Restart pause, 300 second(s)


服务端日志
2024-04-02 19:58:18 us=709684 TCP connection established with [AF_INET]x.x.x.x:37360
2024-04-02 19:58:18 us=709738 TCPv4_SERVER link local (bound): [AF_INET][undef]:51199
2024-04-02 19:58:18 us=709745 TCPv4_SERVER link remote: [AF_INET]x.x.x.x:37360
2024-04-02 19:58:18 us=709757 Server poll timeout, restarting
2024-04-02 19:58:18 us=709799 TCP/UDP: Closing socket
2024-04-02 19:58:18 us=709860 SIGUSR1[soft,server_poll] received, process restarting
2024-04-02 19:58:18 us=709880 net_route_v4_best_gw query: dst 0.0.0.0
2024-04-02 19:58:18 us=709965 net_route_v4_best_gw result: via 192.168.40.253 dev eth0
2024-04-02 19:58:18 us=709996 Re-using SSL/TLS context
2024-04-02 19:58:18 us=710069 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2024-04-02 19:58:18 us=710081 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2024-04-02 19:58:18 us=710127 Control Channel MTU parms [ L:1559 D:1182 EF:68 EB:0 ET:0 EL:3 ]
2024-04-02 19:58:18 us=710194 Preserving previous TUN/TAP instance: tun0
2024-04-02 19:58:18 us=710205 Data Channel MTU parms [ L:1559 D:1450 EF:59 EB:395 ET:0 EL:3 ]
2024-04-02 19:58:18 us=710224 Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1559,tun-mtu 1500,proto TCPv4_SERVER,ifconfig 10.10.4.2 10.10.4.1,keydir 0,cipher AES-128-CBC,auth SHA1,keysize 128,tls-auth,key-method 2,tls-server'
2024-04-02 19:58:18 us=710229 Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1559,tun-mtu 1500,proto TCPv4_CLIENT,ifconfig 10.10.4.1 10.10.4.2,keydir 1,cipher AES-128-CBC,auth SHA1,keysize 128,tls-auth,key-method 2,tls-client'
2024-04-02 19:58:18 us=710282 Could not determine IPv4/IPv6 protocol. Using AF_INET
2024-04-02 19:58:18 us=710300 Socket Buffers: R=[131072->131072] S=[16384->16384]
2024-04-02 19:58:18 us=710314 Listening for incoming TCP connection on [AF_INET][undef]:51199
4901 次点击
所在节点    宽带症候群
57 条回复
nkloveni
239 天前
@fever static 点对点肯定没问题的,fq 也没特征,不会被封,放 80 或 443 还能享受 QoS 的优势。但你那个日志比较奇怪,server 压根没收到请求。但换成 static 是可以的对吧,网络连通性也没问题,我也搞不懂
nkloveni
239 天前
@ranaanna static 没过时啊,要是点对点的话,用 static 非常合适。pki 是给 cs 架构的,那个跨 q 是有问题的
defunct9
239 天前
搞定,结案
fever
239 天前
@ranaanna #40 嗯 有老哥帮看了是证书问题 哈哈
@nkloveni #41 对 static 没问题 老哥帮看了 是我证书有问题 之前我是看日志 连上了,以为证书不会有问题
pki 给 cs 架构 是啥意思啊 就说 tls 验证这一套吗
ranaanna
239 天前
@nkloveni 当前版本( 2.6 )还有这个选项,但是会有警告提示。2.7 版本是错误提示,但是可用--allow-deprecated-insecure-static-crypto 跳过。将来的 2.8 版本没有这个选项。pki ca 是有些复杂,但是好在有 easy-rsa ,跨墙有问题,但是这么多年用下来,似乎只要配置 tls-auth ,就没有问题。
nkloveni
239 天前
@ranaanna 我去,果然是,感谢感谢~~ 坚决不升级了...
xdzhang
239 天前
我用 softether ,比 openvpn 配置方便。
fever
239 天前
@ranaanna #45 请教下你们说的 pki ca 架构具体是啥啊 easy-rsa 不是用来生成证书的工具吗- -
ranaanna
239 天前
@fever PKI 可以说是建立 openvpn 配置的第一步。PKI public key infrastructure 公钥基础设施是指服务器和各个客户端都有各自的证书 cert 和私钥 key ,用来证明各自的身份; CA certificate authority 是指主颁发机构,本质上是一组证书和私钥,用来签署服务器和客户端的证书,保证所有的身份都是真实、唯一和可靠的。通常使用外部 PKI 需要付出一定的代价,所以 openvpn 提供了 easy-rsa ,用来部署自签的 CA ,给所有服务器和客户端颁发证书。所以 OP 认为 easy-ras 是生成证书的工具,理解也并没有错
fever
239 天前
@ranaanna #49 抱歉,再请教下,除了 pki 架构,是还有其他架构吗, static 的 key 也是用工具生成的吧
fever
239 天前
@ranaanna #49 每次都是照着网上照做 感觉没看到很详细讲这些的 该用哪个适合用哪个,所以问多点
150530
239 天前
@fever 异地组网解决方案一般是 WireGuard 吧,或者 zerotier 和 tailscale 带 p2p 穿透的,用 openvpn 不太合适,建议了解一下 WireGuard
ranaanna
239 天前
@ranaanna 实际上无非是身份验证方法而已。static keys 是用双方都预先知道的密钥来证明双方的身份是真实可靠的,这种方法在当今已经不再认为是足够好和安全了。所以一般用的是基于证书的身份验证,openvpn 的通常方法是用 easy-rsa ,生成自签 CA ,并在此基础上创建和管理所需的证书,从而产生一个 PKI ,形成一个相互信任的网络。这个小小的 PKI 仅仅是一个私有 PKI ,只在一个很小的范围内提供身份验证。当然,也可以使用公共 PKI (比如 Let's Encrypt )提供的证书,但是这需要提供包括 common name 等信息,需要每个终端都要有独立域名,大多数公共 PKI 都是收费的等等,实际上完全没有必要。关于其他的“架构”,openvpn 还提供了用户名/密码的验证方式,但是一般是用在证书+用户名/密码的双重验证,单独的用户名/密码验证可以用--client-cert-not-required 强制,但是还是需要服务器的 ca
huihuilang
239 天前
我司现在用 cisco 的 anyconnect ,连接国外总部服务器稳如狗
ttvast
239 天前
@150530 wireguard 不适合一对多架构
AaIT
239 天前
@fever 组网用 Tailscale 就行了,功能强大稳定省心+免费 100 台设备,记得打开 UDP 41641 端口
erfesq
238 天前
openvpn 国内用还好,可以家里软路由,用 op 回去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1029240

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX