Logo
Overview

其他设备通过局域网内主机的代理VPN科学上网(以Jetson设备为例)

通过局域网内主机代理实现Jetson等设备科学上网。首先,在主机端配置代理服务(如v2ray),记录IP地址和端口号,并确保允许局域网访问。可通过修改代理配置文件或设置实现。

July 10, 2025  •  2 min read


Note

Jetson 等设备不会自动继承主机的代理规则

1 ​​主机端代理设置​

首先确保主机已搭建代理服务(如 v2ray 等),并记录代理服务器的 IP 地址和端口号。例如:

Terminal window
#查看本地主机ip(不是固定的)
ipconfig
#IPv4 地址
  • 主机 IP:`192.168.3.68
  • 代理端口:10809(HTTP)或 10808(SOCKS5)

1.1 检查代理端口是否监听(Windows 主机)​

在 ​​Windows PowerShell​​ 中运行以下命令:

Terminal window
netstat -ano | findstr "10809"
  • 如果输出中包含 0.0.0.0:10809 或 192.168.3.68:10809,说明代理服务正在运行并监听局域网。
  • 如果只有 127.0.0.1:10809,说明代理仅限本地访问,需修改代理配置。

1.2 ​​ 修改代理配置以允许局域网访问​

根据你的代理软件(如 Clash、Shadowsocks、v2ray 等):

  1. ​打开代理软件的配置文件​​(通常是 .yaml 或 .json 文件)。
  2. 找到监听地址(bind-address 或 listen),将其改为:
Terminal window
# 允许所有 IP 访问
listen: 0.0.0.0:10809

或者

Terminal window
# 仅允许局域网访问
listen: 192.168.3.68:10809

这里我使用的 v2ray 代理,可以直接在设置中参数设置中允许局域网连接

2025-07-08_20-29-09.png

  1. 重启代理服务。

1.3 安全设置

  • ​限制访问 IP​​: 在路由器或主机防火墙中,仅允许 Jetson 的 IP(如 192.168.3.170)访问 10808/10809` 端口。
  • 在管理员终端输入
Terminal window
# 允许 Jetson (192.168.3.170) 访问 HTTP 代理端口 10809
New-NetFirewallRule -DisplayName "Allow_Jetson_HTTP" -Direction Inbound -LocalPort 10809 -Protocol TCP -RemoteAddress 192.168.3.170 -Action Allow
# 允许 Jetson 访问 SOCKS5 代理端口 10808
New-NetFirewallRule -DisplayName "Allow_Jetson_SOCKS5" -Direction Inbound -LocalPort 10808 -Protocol TCP -RemoteAddress 192.168.3.170 -Action Allow
  • 验证规则
Terminal window
`# 查看已创建的规则
Get-NetFirewallRule -DisplayName "Allow_Jetson_*" | Format-Table DisplayName,Enabled,Action,Direction,RemoteAddress`
  • 应输出
Terminal window
DisplayName Enabled Action Direction RemoteAddress
----------- ------- ------ --------- -------------
Allow_Jetson_SOCKS5 True Allow Inbound 192.168.3.170
Allow_Jetson_HTTP True Allow Inbound 192.168.3.170
  • 完成设置后,只有 Jetson 设备能使用你的代理,其他 IP 访问会被拒绝,安全性大幅提升!

2 ​Jetson 端设备配置​

2.1 ​​系统级代理设置​

  1. ​图形界面设置​

    - 进入 Ubuntu 的“设置” → “网络” → “网络代理”,选择“手动”模式。
    - 填写主机的代理 IP 和端口(如 HTTP/HTTPS 代理均设为 `192.168.3.68:10809`),保存并应用。
    - *注意*:此方法仅影响图形界面应用(如浏览器),终端仍需单独配置。
  2. ​全局环境变量配置​

    - 编辑 `/etc/environment` 文件,添加以下内容(需管理员权限):
Terminal window
http_proxy="http://192.168.3.68:10809"
https_proxy="http://192.168.3.68:10809"
no_proxy="localhost,127.0.0.1"
Terminal window
source /etc/environment
# 执行或重启生效。

适用场景:所有用户和终端命令(如 aptcurl)均通过代理。

Note

代理环境变量虽然已写入 /etc/environment,但并未被当前 Shell 会话加载 所以建议重启 Jetson 设备,这会强制重新加载所有系统环境变量(包括 /etc/environment 中的代理配置)

2.2 ​​终端临时代理(仅当前会话有效)​

在终端中临时设置代理:

Terminal window
export http_proxy=http://192.168.3.68:10809
export https_proxy=http://192.168.3.68:10809

配置 HTTP 代理:

Terminal window
git config --global http.proxy http://192.168.3.68:10809
git config --global https.proxy http://192.168.3.68:10809

取消代理配置:

Terminal window
git config --global --unset http.proxy
git config --global --unset https.proxy

3 测试代理效果

  • 在 Jetson 终端上测试输入
Terminal window
curl -x http://192.168.3.68:10809 -I https://www.google.com

如果返回 HTTP/2 200,说明代理已生效

  • 测试无显示代理的 curl
Terminal window
curl -v http://www.google.com

​预期结果​​:

显示代理连接日志(如 Connecting to 192.168.3.68:10809…