AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 982166
Accepted
xperator
xperator
Asked: 2019-09-07 01:03:58 +0800 CST2019-09-07 01:03:58 +0800 CST 2019-09-07 01:03:58 +0800 CST

运行 vpn 服务器时出现 tun0 错误?

  • 772

我正在使用这些软件运行一个简单的 vpn 服务器:

  • 开放式VPN
  • 影袜
  • MTProto 代理

我的服务器配置是:

  • Ubuntu 18.04 x64
  • 512内存,1vCPU
  • UFW防火墙
  • 网络数据监控
  • Nginx

距离我开始运行服务器仅几天时间。问题是 Netdata 每隔几个小时就会向我发送这 3 种类型的错误。

  • “服务器需要注意,ipv4.udperrors(udp),1m ipv4 udp接收缓冲区错误=12个错误”
  • “服务器需要注意,net_drops.tun0 (tun0),出站数据包丢弃 = 34 个数据包”
  • “服务器需要注意,net_packets.tun0(tun0),出站丢包率=0.33%”

我认为这没什么大不了的,所以我忽略了它们。

我不确定这是防火墙问题、系统瓶颈还是提到的 3 个 vpn 软件之一性能不佳。

我查看了几乎每个日志文件,/var/log但在服务器无法访问之前我找不到任何错误或问题。我不确定服务器是否冻结或崩溃。因为在某个点之后没有日志。直到我们确实强制重启。

ubuntu
  • 1 1 个回答
  • 541 Views

1 个回答

  • Voted
  1. Best Answer
    xperator
    2019-09-11T09:10:45+08:002019-09-11T09:10:45+08:00

    我发现了问题。它与openvpn有关。我看了看,/var/log/syslog显然 openvpn 在与客户端进行 TLS 握手时遇到了问题。它不断记录这些错误:

    TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    TLS handshake failed
    

    原因是reneg-sec参数的默认值为 3600。这是来自 openvpn 官方文档的引用:

    --rereg-sec n

    在 n 秒后重新协商数据通道密钥(默认值 = 3600)。使用双因素身份验证时,请注意,此默认值可能会导致最终用户面临每小时重新授权一次的挑战。

    另外,请记住,此选项可以在客户端和服务器上使用,并且使用较低值的那个将是触发重新协商的那个。一个常见的错误是在客户端或服务器上将 –reneg-sec 设置为更高的值,而连接的另一端仍使用默认值 3600 秒,这意味着重新协商仍将每 3600 秒发生一次。解决方案是在客户端和服务器上增加 –reneg-sec,或者在连接的一侧将其设置为 0(禁用),在另一侧设置为您选择的值。

    此参数确保客户端必须每小时重新协商他们的密钥。

    因此,如果您长时间将 openvpn 留在(客户端)上,并且无论出于何种原因,其中一次握手失败,这将导致无休止的失败谈判。我猜这导致了丢弃的数据包和东西。

    更何况“tun0”接口最初是由openvpn制作的,我不知道。

    无论如何,解决方案是将其更改reneg-sec为更高的值,或者将其设置为零并禁用它。我决定只使用禁用选项并reneg-sec 0输入server.conf和客户端.opvn配置文件。

    此外,如果您碰巧使用 UFW,则必须编辑/etc/default/ufw并更改 DEFAULT_FORWARD_POLICY以接受。

    如果您仍然不断收到 udp 错误,您可能还需要调整您的网络设置。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve