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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1114105
Accepted
Prototype700
Prototype700
Asked: 2019-01-31 04:52:43 +0800 CST2019-01-31 04:52:43 +0800 CST 2019-01-31 04:52:43 +0800 CST

有没有办法随机化我选择的 OpenVPN 服务器?

  • 772

我有一个 ProtonVPN 帐户,并始终连接到 VPN 服务器以保护互联网隐私。不幸的是,ProtonVPN 目前不提供基于 Linux 的客户端,因此他们建议通过 OpenVPN 连接到他们的服务器。

我安装了这些软件包openvpn network-manager-openvpn并network-manager-openvpn-gnome按照官方指南加载了他们的 .ovpn 配置文件。

连接工作正常,但每当我连接到 Ubuntu 上的 VPN 时,我必须从预配置的 .ovpn 文件中手动选择特定服务器。相反,例如,在他们的 Android 客户端上,我只需点击一个按钮并连接到一个随机服务器,甚至无需考虑它。

有没有办法让网络管理员选择一个随机的 .ovpn 配置,而不是我必须手动选择一个?(我不害怕命令行,但最好不要在我的系统中添加另一个 PPA。)

networking server vpn network-manager openvpn
  • 3 3 个回答
  • 4124 Views

3 个回答

  • Voted
  1. Best Answer
    Sebastian
    2019-01-31T10:49:39+08:002019-01-31T10:49:39+08:00

    一个简单的命令行脚本可以像这样工作:

    #!/bin/bash
    RANGE=200
    
    number=$RANDOM
    let "number %= $RANGE"
    fname="us${number}.ovpn"
    openvpn "$fname"
    

    假如说:

    • 您的 OpenVPN 配置文件按照类似的方案命名us176.ovpn,即两个字母的国家代码和一个运行编号。
    • 可用的 OpenVPN 配置文件从us1到运行us200。

    您必须调整范围,并添加存储配置文件的目录。根据我不知道 ProtonVPN 的确切文件名格式,您可能需要进行其他修改,但您明白了。请注意,您需要将脚本作为 sudo 执行,OpenVPN 才能像那样工作。

    编辑:如果您的 VPN 在连接时请求用户名和密码,您可以像这样修改脚本的最后一行:

    openvpn --config $fname --auth-user-pass /dir/to/userpass.txt
    

    其中 userpass.txt 在两个单独的行中包含用户名和密码,如果您喜欢这样存储它。

    • 3
  2. AlexOnLinux
    2019-02-11T07:02:15+08:002019-02-11T07:02:15+08:00

    我从未这样做过,但据我了解 openvpn 手册,您可以在.ovpn配置文件中编写多个连接配置文件/远程 vpn-server-ip。与–remote-random软件结合时openvpn会为您选择一个,否则它将选择列表中指定的第一个服务器。我不知道这是否可以与 NetworkManager 一起使用,但是当您从 termial 运行命令时它应该可以工作
    sudo openvpn my.config.file.ovpn。


    从手册中引用:

    --远程主机 [端口] [原型]

    远程主机名或 IP 地址。 在客户端上,可以为冗余指定多个 --remote 选项,每个选项都指向不同的 OpenVPN 服务器。 为此目的指定多个 --remote 选项是更通用的连接配置文件功能的特例。

    请参阅<connection>下面的文档。

    OpenVPN 客户端将尝试按照 --remote 选项列表指定的顺序连接到 host:port 上的服务器。proto 表示与远程连接时使用的协议,可以是“tcp”或“udp”。

    如果连接失败,客户端将移动到列表中的下一个主机。 请注意,在任何给定时间,OpenVPN 客户端最多只能连接到一台服务器。

    [...]

    <connection>定义客户端连接配置文件。

    客户端连接配置文件是一组 OpenVPN 选项,描述了如何连接到给定的 Open-VPN 服务器。客户端连接配置文件在 OpenVPN 配置文件中指定,每个配置文件都用 和 括<connection>起来</connection>。

    这是连接配置文件使用的示例:

    客户端开发 tun

    <connection>
    

    远程 198.19.34.56 1194 udp

    远程 198.19.34.56 443 tcp

    远程 198.19.34.56 443 tcp http-proxy 192.168.0.8 8080 http-proxy-retry

    [...]

    OpenVPN 客户端将依次尝试每个连接配置文件,直到成功连接。

    --remote-random 可用于最初“打乱”连接列表。

    • 2
  3. avia
    2021-09-21T21:07:23+08:002021-09-21T21:07:23+08:00

    有一个内置的配置。

    只需像这样添加所有服务器:

    远程 XX.XXvpn.xxx 端口 远程 XX2.XXvpn.xxx 端口 ...

    然后添加这一行远程随机

    就这样。

    • 0

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve