我一直在努力提高我的 OpenVPN 性能,这是我当前的设置:
cat /etc/openvpn/server.conf
port 443 #- port
proto tcp #- protocol
dev tun
#tun-mtu 1500
tun-mtu-extra 32
#mssfix 1450
tun-mtu 64800
mssfix 1440
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
#plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS
#plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS
client-to-client
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive …Run Code Online (Sandbox Code Playgroud) 我有一个处理各种客户端的 VPN 服务器;有些只支持 ipv4,有些支持 ipv4 和 ipv6,有些只支持 ipv6。其中一些客户端正在漫游,因此理想情况下,如果可用,它们应该连接到 ipv6,如果不可用,则回退到 ipv4。
在我当前的设置中,OpenVPN 侦听 ipv4 和 ipv6:
proto udp
proto udp6
dev tun
Run Code Online (Sandbox Code Playgroud)
我的第一个问题在这里:虽然这似乎有效,但将两个 proto 放在一个配置文件中是否安全和正确?
我的客户在配置中有两个远程实例:
remote vpn.domain.tld port udp6
remote vpn.domain.tld port udp
Run Code Online (Sandbox Code Playgroud)
我的问题也在这里,因为这似乎有效(首先尝试 udp6,如果失败将回退到 udp),这是一个很好的方法吗?
我们正在 BGAN 卫星链路上运行 OpenVPN VPN,其中 ping 时间约为 3 秒。我们在tun配置中使用它,并且我们在 Linux (CentOS) 上运行。它主要是通过链接发送的电子邮件,但是一旦邮件包含大附件,VPN 似乎就会停止。
该“我可以通过隧道ping通,但任何实际工作导致其锁定。这是一个MTU的问题?” OpenVPN 常见问题解答中的问题似乎准确地描述了我的问题,但使用mssfix和fragment似乎仍然无法改善这种情况。
我的主要测试是使用scp通过 VPN 复制 2MB 文件。它将复制大约 192kbytes,然后报告一个- 停止 -状态。如果我等待几秒钟,它会再次开始复制,然后再经过几 KB 后再次停止。
无论我是否在 OpenVPN 配置中设置了fragment或mssfix选项,都会发生这种停顿(尽管设置fragment 1000似乎确实减少了停顿,但并没有消除它)。OpenVPNmtu-test报告 MTU 大小为 1542。
我在互联网上搜索了更多关于如何以及何时使用mssfixand 的建议fragment,但我只找到与 FAQ 相同的页面,并没有详细说明如何以及何时使用哪些参数。
我的问题是:
mssfix和fragment?mssfix和fragment组合使用吗?mssfix和fragment是解决方案tun-mtu,link-mtu和 …有没有办法断开由 free-radius 使用 shell 命令行建立的 openvpn 连接?
我有关于 openvpn 连接的所有信息:
我正在尝试使用TunnelBlick(已知良好的 OS/X OpenVPN 2.2.1 客户端)使用证书进行连接,但未成功。这是我收到的(已清理)错误消息:
2012-01-11 11:18:26 TLS:来自 **.**.**.** 的初始数据包:1194,sid=17a4a801 5012e004 2012-01-11 11:18:26 验证错误:深度=1,错误=证书链中的自签名证书: /C=US/ST=**/L=**/O=**/CN=** /电子邮件地址=** 2012-01-11 11:18:26 TLS_ERROR:BIO 读取 tls_read_plaintext 错误:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 2012-01-11 11:18:26 TLS 错误:TLS 对象 -> 传入明文读取错误 2012-01-11 11:18:26 TLS 错误:TLS 握手失败 2012-01-11 11:18:26 TCP/UDP:关闭套接字
现在,问题来了。我自己生成了一个 CSR来请求这个证书,使用对方提供给我的ca.crt文件(实际上,他们做了两次只是为了确保)。
客户端配置中的相关条目是:
ca ca.crt
cert my.crt
key my.key
Run Code Online (Sandbox Code Playgroud)
而且,此外......我可以通过这种方式验证密钥:
openssl verify -CAfile ca.crt my.crt
my.crt: OK
好的,所以现在我彻底迷惑和难住了。此时,我知道CSR 和密钥是使用正确的 CSR 生成的。事实上,这是执行此操作的命令:
openssl req -newkey …Run Code Online (Sandbox Code Playgroud) 设置:
我有一个 openvpn 客户端/服务器设置(底部的配置文件),我MULTI: bad source address from client [192.168.x.x], packet dropped在服务器上收到了臭名昭著的消息。服务器有一个公共 IP 地址,而客户端在 NAT 后面。
先前提出的解决方案的不足之处:
该client-config-dir服务器配置目前是空的定义。以前的帖子(此处和 openvpn 支持论坛中)建议在 中添加以DEFAULT正确规则命名的文件client-config-dir,或添加具有这些规则的每个用户文件来解决问题。
然而,这似乎不是一个长期的解决方案,因为这些规则是特定于客户位置的。所以,我可以添加一个规则来允许客户端192.168.x.0连接。但是,如果它们从另一个192.168.y.0用于 NAT 的网络连接,则需要新规则。
问题:
服务器配置:
port 1234
proto tcp
dev tun
ca ca.crt
cert openvpn.crt
key openvpn.key
dh dh2048.pem
server 10.78.96.0 255.255.255.0
keepalive 10 120
comp-lzo
cipher CAMELLIA-128-CBC
user nobody
group nogroup
persist-key
persist-tun
client-cert-not-required
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
status openvpn-status.log
push "redirect-gateway def1"
push "remote-gateway …Run Code Online (Sandbox Code Playgroud) 在 Debian 上运行着一个 OpenVPN 服务器,它在服务器配置文件中推送一个 DNS:
推送“dhcp-option DNS 8.8.8.8”
是否有允许用户更改客户端的 DNS 服务器的选项?
这里有一个问题,openvpn 服务器必须推送一个 DNS,否则许多 OpenVPN 客户端将无法打开网页,直到在系统的网络设置中手动设置 DNS 服务器。
我的目标是自动将默认 DNS 服务器应用于技术不熟练的用户,同时还允许熟练的计算机用户设置自己的 DNS 服务器。
请注意,当 openvpn 服务器上的“推送“dhcp-option DNS 8.8.8.8”选项处于活动状态时,只需更改 PC 上的 DNS 设置,什么都不做。无论本地 DNS 设置如何,服务器推送的 DNS 都会保留。
有任何想法吗?
OpenVPN 服务器配置:
# cat /etc/openvpn/openvpn.conf
server 10.186.35.0 255.255.255.0
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
#push "route 0.0.0.0 0.0.0.0"
#push "redirect-gateway"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4" …Run Code Online (Sandbox Code Playgroud) 这个问题类似于Openvpn 的在 lxc 来宾中没有 tun 设备。LXC 已经发展,最近推出了无特权的 LXC 容器,它提供了另一层防止越狱的安全性。
我需要在一个非特权容器中创建一个 OpenVPN 服务器。我不知道如何让容器创建一个私有的 tun 网络设备。
我确实附加lxc.cgroup.devices.allow = c 10:200 rwm到~/.local/share/lxc/mylxc/config.
启动容器后,mknod /dev/net/tun c 10 200返回mknod: '/dev/net/tun': Operation not permitted容器内部。
我使用 vanilla Ubuntu 14.04 64bit 作为主机和一个容器
lxc-create -t download -n mylxc -- -d ubuntu -r trusty -a amd64
Run Code Online (Sandbox Code Playgroud)
有没有人设法让/dev/tun设备在非特权 LXC 下运行?
我有一个 openVPN 设置,其中用户在运行 openVPN 的 Debian VM 上没有shell 帐户。我在谷歌搜索时发现的文章都有为经典 *nix 用户设置 Google Authenticator 的说明(例如,需要在用户的主目录中执行 Authenticator 二进制文件)。
是否有文档解释如何为仅基于.ovpn客户端使用的文件进行身份验证的 openvpn 服务器集成 Google 身份验证器?
我查看了https://github.com/evgeny-gridasov/openvpn-otp,但它仍然需要配置 Google Authenticator。
有很多与此错误相关的问题,并且有一个建议的手动修复,效果很好,但没有永久的解决方案。我怎样才能永久解决这个问题?我在 debian wheezy 服务器上遇到这个问题,使用 OpenVPN 客户端连接到 OpenVPN 服务器。
建议的修复如下所示。似乎 /dev/net 不会自动创建,当然会在每次重新启动时消失。
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
Run Code Online (Sandbox Code Playgroud)