You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:仅支持IPv6的VPS如何通过双栈笔记本转发访问IPv4站点,解决mix deps.get包下载失败问题

求助:仅支持IPv6的VPS如何通过双栈笔记本转发访问IPv4站点,解决mix deps.get包下载失败问题

兄弟我之前也踩过一模一样的坑!IPv6-only的VPS性价比确实拉满,但碰到依赖仓库只支持IPv4的时候真的头疼,不过用你本地的双栈笔记本做中转完全能搞定,不用折腾squid那种复杂的代理软件,给你俩简单粗暴的办法,临时用足够了:

方法一:SSH反向动态代理(最省心,零额外配置)

这是我临时救急最爱用的办法,不用装任何额外软件,靠SSH本身就能搞定:

  1. 在你的双栈笔记本上操作:打开终端,运行这条命令,建立VPS到笔记本的反向代理隧道:
    ssh -R 1080:localhost:1080 -N your_vps_username@your_vps_ipv6_address
    
    解释下参数:-R是反向端口转发,把VPS的1080端口直接映射到笔记本的1080端口;-N表示只维持连接不执行远程命令,避免终端乱跑程序。输入VPS密码后,这个窗口别关,保持后台运行就行。
  2. 登录到你的IPv6-only VPS:临时设置环境变量,让mix走刚才的SOCKS代理:
    export ALL_PROXY=socks5://localhost:1080
    
    要是mix不认ALL_PROXY,可以试试单独设置HTTP/HTTPS代理:
    export HTTP_PROXY=socks5://localhost:1080 HTTPS_PROXY=socks5://localhost:1080
    
  3. 执行下载命令:现在直接跑mix deps.get,应该就能正常拉取IPv4上的依赖包了!
  4. 用完清理:在VPS上执行unset ALL_PROXY HTTP_PROXY HTTPS_PROXY取消代理,然后关掉笔记本上的SSH窗口就行。

方法二:iptables NAT转发(适合长期使用,临时用没必要)

如果之后还要频繁访问IPv4站点,可以试试把笔记本做成NAT网关,但临时救急的话方法一足够了,这里简单提一下步骤:

  1. 笔记本上开启IP转发:Linux/macOS运行sudo sysctl -w net.ipv4.ip_forward=1(macOS可能还要调整pf规则,比较麻烦)
  2. 通过SSH建立点对点隧道:ssh -w 0:0 your_vps_username@your_vps_ipv6_address
  3. 在VPS上设置默认路由指向笔记本的隧道IP,把所有IPv4流量都转去笔记本

一些注意事项

  • 确保笔记本的防火墙允许SSH反向转发的端口(这里是1080),不然VPS连不上代理端口;
  • 如果SSH连接慢,可以加-C参数开启压缩:ssh -C -R 1080:localhost:1080 -N ...
  • 要是VPS的SSH端口不是默认22,记得加-p 自定义端口参数。

备注:内容来源于stack exchange,提问作者Existn't

火山引擎 最新活动