V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
eggt
V2EX  ›  问与答

求一个网络解决方案

  •  
  •   eggt · 2021-11-01 23:20:26 +08:00 via iPhone · 2211 次点击
    这是一个创建于 1120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    场景: 我本地 pc 与一台服务器 A 可 ssh 连接,服务器 B 与服务器 A 互通,但服务器 B 与本地 pc 不通,想实现本地 pc 和服务器 B 间通过一层代理(类似端口转发)来实现直连。google 了一个端口转发加 http proxy 的方法,貌似也能起到效果,但不是透明代理,不同客户端要分别设置一遍(而且需要客户端支持代理功能),有点麻烦,步骤是这样的:

    本地使用命令:ssh -D 5001 user@ip 登录到 ssh 隧道服务器: ssh -D 5001 root@A
    * 本地使用 npm 安装 http-proxy-to-socks: npm install -g http-proxy-to-socks
    * 本地使用命令:hpts -s 127.0.0.1:5001 -p 8080
    * 本地就可以通过使用代理进行请求:127.0.0.1:8080
    13 条回复    2021-11-02 18:59:11 +08:00
    pheyx
        1
    pheyx  
       2021-11-01 23:57:19 +08:00 via Android
    关键字 redsocks iptables redirect
    coolan
        2
    coolan  
       2021-11-02 00:07:06 +08:00
    用 gost 也行,你上面已经有了 socks5 代理在 5001 端口,使用透明代理: https://docs.ginuerzh.xyz/gost/redirect/
    ClericPy
        3
    ClericPy  
       2021-11-02 01:10:12 +08:00
    gost yyds

    不过现在公司里用 VPN + jumpserver 整过去的. 平时在家办公就用向日葵控制公司电脑.
    remember5
        4
    remember5  
       2021-11-02 08:40:28 +08:00 via iPhone
    nps 内网穿透也可以解决你的问题,不过相对比较麻烦
    zhangsanfeng2012
        5
    zhangsanfeng2012  
       2021-11-02 09:34:21 +08:00
    pc 和 A 创建一条隧道就行,wireguard 类似的;然后 A 开启转发和 SNAT
    eggt
        6
    eggt  
    OP
       2021-11-02 09:36:56 +08:00
    @eggt @pheyx @coolan @ClericPy @remember5 @zhangsanfeng2012

    主要是想请教下我这个方法是不是太绕了,有没有什么工具可以直接或者更方便实现的? 比如 clash 这种代理 软件,有可能吗
    coolan
        7
    coolan  
       2021-11-02 10:12:00 +08:00 via Android
    绕不饶得看服务器 A ,如果只开了 SSH 端口,那你就得先建立 SSH 隧道,再把请求转发给隧道,就是你写的这种,只是利用 gost 可以透明转发。如果 A 能直接安装代理服务端,端口也没限制,那是可以用 clash 之类的,其实也没简单多少我觉得。
    eggt
        8
    eggt  
    OP
       2021-11-02 10:26:50 +08:00 via iPhone
    @coolan gost 我看只支持 linux 下透明代理,我都是 window 和 mac 环境
    eggt
        9
    eggt  
    OP
       2021-11-02 10:28:56 +08:00 via iPhone
    @coolan 如果 A 能直接安装代理服务端,端口也没限制====这个代理服务端具体指的是哪个工具呀?目前我的 A 环境,除了 ssh 端口开放,还有几个端口也是开着的,并且没有占用
    coolan
        10
    coolan  
       2021-11-02 10:48:37 +08:00
    @eggt 其实就是普通翻墙使用的那种,教程很多,什么 v2ray ,ss ,搭建服务端的,但是 clash 规则你得自己写。你是不是在 clash 电报群问了,我在 telegram 上看见了 - -
    eggt
        11
    eggt  
    OP
       2021-11-02 11:05:08 +08:00
    @coolan 哈哈问过,老哥也在啊😂
    documentzhangx66
        12
    documentzhangx66  
       2021-11-02 12:34:01 +08:00
    1.你们在上面讨论的都不是透明代理,透明代理的意义是客户端根本什么都不需要设置,常见的透明代理是客户端的上级网络设备,比如专用的 TP-Link VPN 路由器,或者一台专业的 Linux 路由服务器等等。

    2.题主的需求,其实是需要搭建一个虚拟局域网。

    最方便的做法,是在 A 服务器上,用已经免费的商业软件,SoftEther VPN ,来搭建 VPN Server 。这样你本地 pc ,什么软件都不需要安装,只需要做一下简单的配置,比如 Windows ,在网络设置的 VPN 选项里,填 VPN Server 的 IP 与端口就好。

    之所以推荐 SoftEther VPN ,因为它在 Windows 下面甚至可以通过全图形化的界面 + 充满提示与引导的方式,来建立 VPN Server 。

    除了 SoftEther VPN ,同类软件还有 OpenVPN ,这是业界标准的软件,只是第一次配置需要掌握大量知识,比如网络知识,RSA 、SHA 、DES 等加密知识,等等。

    有些小众的软件比如 n2n ,千万别去碰。不稳定。
    eggt
        13
    eggt  
    OP
       2021-11-02 18:59:11 +08:00 via iPhone
    @documentzhangx66 搭建 vpn 服务的话,还得对应 vpn 客户端吧?我的想法是暴露一个 http proxy 可以直接用的那种,今天搜索了下 squid 这个工具,安装到 A 上面,本地添加代理无效,不知道咋回事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:38 · PVG 05:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.