You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PuTTY端口转发实现本地Windows 11 PC借助AWS Lightsail Ubuntu实例代理全网流量?

如何通过PuTTY端口转发实现本地Windows 11 PC借助AWS Lightsail Ubuntu实例代理全网流量?

嗨,我来帮你梳理下正确的配置步骤,你之前的思路有点小偏差——要实现“本地PC通过AWS实例上网”的需求,用动态SOCKS代理转发才是正确的方向,而不是固定端口的远程转发。咱们一步步来解决:

一、先搞懂核心逻辑

你需要建立一条SSH隧道,让本地Windows的所有流量(或者指定应用的流量)先发送到本地的一个SOCKS端口,再通过SSH隧道传到AWS Ubuntu实例,最后由实例替你访问互联网。这个过程不需要暴露额外的端口(比如你之前的6088),所有流量都走SSH的22端口。

二、PuTTY端配置步骤

  1. 打开PuTTY,先配置基础SSH连接:
    • 在「Session」面板里,填入AWS实例的公网IP x.x.x.x,端口保持22,连接类型选「SSH」。
  2. 配置动态端口转发:
    • 切换到「Connection → SSH → Tunnels」面板:
      • 在「Source port」里填一个本地端口(比如常用的1080,或者你想用的6088)。
      • 不要填Destination,而是勾选「Dynamic」选项(这是关键!)。
      • 点击「Add」,你会看到左侧列表里出现D1080(如果填的是6088就是D6088)。
  3. 保存配置并连接:
    • 回到「Session」面板,给这个配置起个名字(比如「AWS Proxy」),点击「Save」方便以后复用。
    • 点击「Open」,用你的Ubuntu实例用户名和密钥(记得加载PuTTY格式的.ppk密钥文件)登录到实例。登录成功后,PuTTY窗口标题会显示(D:1080),说明隧道已经建立。

三、AWS Ubuntu实例的关键设置(必须做!)

默认情况下,Ubuntu实例不会帮你转发流量,需要手动开启IP转发和NAT:

  1. 临时开启IP转发:
    登录到实例后,执行以下命令:
    sudo sysctl -w net.ipv4.ip_forward=1
    
    要让这个设置永久生效,编辑/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符号#,然后执行sudo sysctl -p让配置生效。
  2. 配置NAT转发(让实例伪装你的流量):
    执行以下命令(eth0是实例的主网卡,不确定的话可以用ip addr查看,通常是eth0或ens5):
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    为了让这个规则重启后不丢失,安装iptables-persistent工具:
    sudo apt update && sudo apt install iptables-persistent
    
    安装过程中会提示保存当前规则,选「Yes」即可。
  3. 检查防火墙(如果开启了ufw):
    如果你的Ubuntu实例开启了ufw防火墙,需要允许流量转发:
    sudo ufw allow forward
    
    或者编辑/etc/default/ufw,把DEFAULT_FORWARD_POLICY改成ACCEPT,然后重启ufw:sudo ufw reload。

四、本地Windows 11的代理配置

两种方式可选,按需选择:

  1. 系统级全局代理:
    • 打开Windows设置 → 网络和互联网 → 代理。
    • 开启「手动设置代理」,地址填localhost,端口填你在PuTTY里设置的端口(比如1080)。
    • 注意:全局代理会让所有系统流量走AWS实例,包括系统更新等。
  2. 浏览器单独配置(更灵活):
    • 以Chrome为例:打开设置 → 系统 → 打开您计算机的代理设置 → 手动设置代理里,选择「使用代理服务器」,地址localhost,端口1080;或者直接在Chrome的扩展商店装一个代理切换插件,设置socks5://localhost:1080。

五、测试与排查

  1. 测试代理是否生效:打开浏览器访问一个显示IP的网站,看看显示的是不是AWS实例的公网IP x.x.x.x。
  2. 常见问题排查:
    • 确认AWS Lightsail的防火墙(实例和账户级别)只需要开放SSH的22端口,不需要开6088,因为隧道是通过22端口建立的。
    • 检查PuTTY是否成功连接,隧道是否生效(窗口标题有(D:端口号)标识)。
    • 如果还是无法访问,检查Ubuntu实例的iptables规则是否正确,用sudo iptables -t nat -L查看是否有MASQUERADE规则。

关于AWS VPN实例的补充

你提到的AWS专门的VPN实例(比如OpenVPN Access Server、AWS Managed VPN),适合长期稳定使用、多设备同时连接的场景。但如果只是单台PC临时用代理上网,用SSH动态端口转发就足够了,不需要额外的VPN实例,成本更低也更简单。

备注:内容来源于stack exchange,提问作者user221238

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:08:03