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

求推荐Kubuntu下可将OpenVPN配置转为本地代理的工具

Kubuntu下让Discord单独走OpenVPN的实现方案

推荐工具组合:OpenVPN + Redsocks + iptables

这套工具可以搭建本地SOCKS代理,仅将通过该代理的流量导入OpenVPN隧道,系统其他流量仍走本地网络,完美匹配你的需求。

具体步骤:

  1. 安装依赖工具:
    sudo apt install openvpn redsocks iptables-persistent
    
  2. 配置Redsocks:
    编辑/etc/redsocks.conf,替换为以下配置:
    base {
        log_debug = off;
        log_info = off;
        log = "file:/var/log/redsocks.log";
        daemon = on;
        redirector = iptables;
    }
    
    redsocks {
        local_ip = 127.0.0.1;
        local_port = 1080;
        ip = 0.0.0.0;
        port = 0;
        type = socks5;
    }
    
  3. 启动并启用Redsocks服务:
    sudo systemctl start redsocks
    sudo systemctl enable redsocks
    
  4. 启动OpenVPN(避免全局路由):
    用你的配置文件启动OpenVPN,加上--route-nopull参数,防止所有流量都走VPN:
    sudo openvpn --config /path/to/your/vpn-config.ovpn --route-nopull
    
  5. 配置iptables规则:
    假设OpenVPN隧道接口为tun0,执行以下命令:
    # 创建NAT链处理Redsocks流量
    sudo iptables -t nat -N REDSOCKS
    # 跳过本地/私有网络流量,不走代理
    sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
    # 将TCP流量重定向到Redsocks端口
    sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 1080
    
    # 标记通过SOCKS代理的流量
    sudo iptables -t mangle -N MARK_VPN
    sudo iptables -t mangle -A MARK_VPN -p tcp --dport 1080 -j MARK --set-mark 0x1
    sudo iptables -t mangle -A PREROUTING -j MARK_VPN
    
    # 让标记的流量走OpenVPN隧道
    sudo ip rule add fwmark 0x1 table 100
    sudo ip route add default dev tun0 table 100
    
  6. 启动Discord并指定代理:
    discord --proxy-server socks://127.0.0.1:1080
    

简化方案:OpenVPN + SSH动态转发

如果你的VPN提供SSH访问权限(或你能登录VPN另一端的服务器),可以用更简单的方式:

  1. 启动OpenVPN(仅建立隧道,不修改全局路由):
    sudo openvpn --config /path/to/your/vpn-config.ovpn --route-nopull
    
  2. 本地执行SSH动态转发,创建SOCKS代理:
    ssh -D 1080 -N your-username@vpn-server-ip
    
  3. 同样用以下命令启动Discord:
    discord --proxy-server socks://127.0.0.1:1080
    

内容的提问来源于stack exchange,提问作者Eray Erdin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 01:50:58