我正在编写一个脚本,它基本上使用 openvpn 客户端扫描 OpenVPN 服务器。我所说的扫描是指通过尝试连接、ping 时间和互联网速度来检查服务器是否接受连接。
默认情况下,当您连接到 OpenVPN 服务器时,所有流量都会发送到该服务器,除非您更改配置文件中的设置。由于扫描速度很慢,为了避免干扰用户的浏览等,我可以更改配置文件中的设置并使用“ping -I ”代替常规 ping。
但是测试网速是个问题。如果我不更改配置文件中的设置,并且所有流量都通过 VPN,我可以成功使用 speedtest-cli 命令来获取下载和上传速度。
但是,speedtest-cli 没有任何指定接口的选项。
是否有任何命令可以让我指定进行速度测试的接口?
此外,该脚本是用 python 编写的,所以我正在寻找 python 命令或终端命令来完成此操作。
另外,请注意,我正在寻找的是下载和上传速度,而不是 NIC 速度。
答案1
但是,speedtest-cli 没有任何指定接口的选项。
是的,使用--source
指令
--source SOURCE 要绑定的源 IP 地址
speedtest-cli --source 10.1.1.3
应该可以解决问题。
答案2
对于最新的 CLI 版本,您需要使用以下-i
标志:
speedtest -i 10.1.1.3
您还可以执行以下操作:
speedtest -I wlan0
speedtest -I wlan1
speedtest -I eth0
...
当前可用的标志是(根据man
):
Speedtest by Ookla is the official command line client for testing the speed and performance of your internet connection.
Version: speedtest 1.2.0.84
Usage: speedtest [<options>]
-h, --help Print usage information
-V, --version Print version number
-L, --servers List nearest servers
-s, --server-id=# Specify a server from the server list using its id
-I, --interface=ARG Attempt to bind to the specified interface when connecting to servers
-i, --ip=ARG Attempt to bind to the specified IP address when connecting to servers
-o, --host=ARG Specify a server, from the server list, using its host's fully qualified domain name
-p, --progress=yes|no Enable or disable progress bar (Note: only available for 'human-readable'
or 'json' and defaults to yes when interactive)
-P, --precision=# Number of decimals to use (0-8, default=2)
-f, --format=ARG Output format (see below for valid formats)
--progress-update-interval=# Progress update interval (100-1000 milliseconds)
-u, --unit[=ARG] Output unit for displaying speeds (Note: this is only applicable
for ‘human-readable’ output format and the default unit is Mbps)
-a Shortcut for [-u auto-decimal-bits]
-A Shortcut for [-u auto-decimal-bytes]
-b Shortcut for [-u auto-binary-bits]
-B Shortcut for [-u auto-binary-bytes]
--selection-details Show server selection details
--ca-certificate=ARG CA Certificate bundle path
-v Logging verbosity. Specify multiple times for higher verbosity
--output-header Show output header for CSV and TSV formats
Valid output formats: human-readable (default), csv, tsv, json, jsonl, json-pretty
Machine readable formats (csv, tsv, json, jsonl, json-pretty) use bytes as the unit of measure with max precision
Valid units for [-u] flag:
Decimal prefix, bits per second: bps, kbps, Mbps, Gbps
Decimal prefix, bytes per second: B/s, kB/s, MB/s, GB/s
Binary prefix, bits per second: kibps, Mibps, Gibps
Binary prefix, bytes per second: kiB/s, MiB/s, GiB/s
Auto-scaled prefix: auto-binary-bits, auto-binary-bytes, auto-decimal-bits, auto-decimal-bytes