单位 HTTP 代理环境,如何实现透明全局代理?(附上我现在用的方法,不完美,求更好方案) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
godlong
V2EX    互联网

单位 HTTP 代理环境,如何实现透明全局代理?(附上我现在用的方法,不完美,求更好方案)

  •  
  •   godlong 2018-03-20 17:30:52 +08:00 6660 次点击
    这是一个创建于 2836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境介绍: *单位三桶油之一,下班后住宿舍,偏远地没有运营商信号。只能接受单位网络。

    单位全国大内网,10.X.X.X,全国统一通过 10.10.10.10:8080 的 HTTP 代理出口上网。每次上网都需要在各类软件设置 http 代理(例如浏览器,qq,微信。)蛋疼的 IOS/ANDROID 全局就很麻烦了。

    现在目前解决方法: 首先,单位内网服务器很多,建立了个 ikuai 服务器。 腾讯云(之前用阿里云),上建立了个 openvpn 服务。 ikuai 通过 http 代理拨腾讯云的 openvpn 服务器。 ikuai 开启 VPN 服务器接受各类终端拨号接入(也可以开 PPPOE,做网关,思路一样)

    数据包这样走 终端----IKUAI----公司 HTTP 代理服务器----腾讯云 ECSOPENVPN 服务器----公司 HTTP 代理----IKUAI---终端

    这样终端就实现全局“透明”代理,包括 iOS 可以上 qq,微信。不需要单独设置 HTTP 代理。如果把终端换成带 VPN 客户端的路由器的话就是真正透明代理了。

    ======================================== 但问题是腾讯云的带宽费用太高,目前就 2M,所以造成网速太慢。

    我想的是通过建立 ubuntu,能不能使用 ss-redir 之类的技术实现在 ubuntu 里面完成 HTTP 透明代理,再把这台 ubuntu 或者 centos 机子当网关。数据就这样走。 终端----IKUAI----ubuntu 机----公司 HTTP 代理服务器----ubuntu 机-----IKUAI---终端

    这样带宽就不受腾讯 ECS 服务器 2M 限制了。 目前查了下有用的信息有 sstap,ss-redir,ssr。但苦于 HTTP 代理服务器不支持 udp 的转发,不知道思路。

    大家有更好的方案吗

    42 条回复    2018-10-24 16:15:30 +08:00
    huangunic0rn
        1
    huangunic0rn  
       2018-03-20 18:21:38 +08:00   1
    - 每次上网都需要在各类软件设置 http 代理 - 这个可以考虑用 PAC 解决,当然可能需要自己收集域名。
    - ovpn 打开--tcp-nodelay 调节--link-mtu 会有一定效果

    别的欢迎大佬补充
    godlong
        2
    godlong  
    OP
       2018-03-20 18:29:26 +08:00 via iPhone
    @huangunic0rn 大佬,设置 mtu 之后会加大带宽?啥原理?带宽是腾讯限制的啊。。。。能不能解释下?谢谢
    xiaodongus
        3
    xiaodongus  
       2018-03-20 18:55:40 +08:00 via iPhone   1
    每次上网都需要在各类软件设置 http 代理(例如浏览器,qq,微信。)蛋疼的 IOS/ANDROID 全局就很麻烦了。

    不麻烦,很多 app 都支持的,比如 小火箭
    https://i.loli.net/2018/03/20/5ab0e7e597867.png
    uiuy
        4
    uiuy  
       2018-03-20 19:02:01 +08:00 via iPhone   1
    本地开 proxifier,配合 wifi 大师之类的开启 wifi,手机不用做任何设置,调整 proxifier 就行。
    我记得当时还要装那个烂塞门铁克。。
    我又想起那段黑暗的日子,还好已经离职,美滋滋
    godlong
        5
    godlong  
    OP
       2018-03-20 19:02:11 +08:00 via iPhone
    @xiaodongus ios 暂时用这个。

    但是很多游戏玩不了,小火箭,surge 之类也不是真正把 udp 转发。。好多游戏的 udp 包还是过不去,但是用 openvpn 就真正全局了。

    谢谢回帖,期待有其他方案了!
    godlong
        6
    godlong  
    OP
       2018-03-20 19:05:39 +08:00 via iPhone
    @xihefeng 这个除了小米 wifi 其他真不行,而且也不是真正意义全局,dns 解析不了,53 端口到达不了 114.114.114.114 。

    且共享网络不方便,不如 openvpn 再开个 ikuai 方便。

    还是希望用网关,爱快。
    huangya
        7
    huangya  
       2018-03-20 19:08:12 +08:00   1
    >终端----IKUAI----ubuntu 机----公司 HTTP 代理服务器----ubuntu 机-----IKUAI---终端
    你这样走的话,只能对那些支持 HTTP 代理的应用。不能针对任意的 TCP/UDP 应用。比如这个应用的服务器端口是 50000.
    > 终端----IKUAI----公司 HTTP 代理服务器----腾讯云 ECSOPENVPN 服务器----公司 HTTP 代理----IKUAI---终端
    这种就没有上面的问题.

    不知道 lz 家中有没有网络并且能搞到公网 IP.这样就不会受限于腾讯云。
    xenme
        8
    xenme  
       2018-03-20 19:12:59 +08:00 via iPhone   1
    如果单位没有封网站的话,去掉 ecs 就好。

    如果有限制,唯一可以做的就是在外面找个跳板,买那种翻墙的在国内有服务器的或者翻回国内的,比较便宜
    godlong
        9
    godlong  
    OP
       2018-03-20 19:13:28 +08:00 via iPhone
    @huangya 你的意思是家里公网 ip 开 openvpn 替代腾讯?


    常开一台服务器吗?还是装一个带 ovpn 服务端的路由?

    我现在不倾向于通过外网放一台 ovpn 服务器来解决,想在内网解决,这样稳定性,速度就不会受外网服务器影响了,不知道这样写大佬您能不能看明白,语文表达能力不好。
    godlong
        10
    godlong  
    OP
       2018-03-20 19:15:11 +08:00 via iPhone
    @xenme 国外的服务器也考虑过,比如谷歌云,但是延迟太高太高了...

    网站倒没屏蔽,只是不想通过公网踏板服务器。。。。
    pagxir
        11
    pagxir  
       2018-03-20 19:16:37 +08:00 via Android   1
    redsocks 可以实现 tcp 到 https 代理的转发,至于 udp 就只能用其他服务器。反正没啥难度,送分题
    godlong
        12
    godlong  
    OP
       2018-0-20 19:17:33 +08:00 via iPhone
    @xenme 你说的去掉 ecs 就好是什么意思呢?去掉 ecs 后爱快就没法连接互联网了.爱快没有 http 代理出口的设置。
    godlong
        13
    godlong  
    OP
       2018-03-20 19:19:55 +08:00 via iPhone
    @pagxir 大神你意思是 tcp 和 udp 分开走吗?
    tcp 直接走 http 代理,udp 走外网腾讯服务器中转?思路很好,可是怎么实现呢?搜了一下没有教程呀,能说说吗?这样 udp 带宽少,腾讯 2M 的带宽应该稍微好点。谢谢
    xenme
        14
    xenme  
       2018-03-20 19:22:36 +08:00 via iPhone   1
    内网都可以 ikuai 了直接上 openwrt 或者 lede,然后透明代理到 10.10.10.10 ,终端网关指向 lede 即可。
    pagxir
        15
    pagxir  
       2018-03-20 19:23:20 +08:00 via Android
    linux 本来就策略路由的,根据协议路由 /地址转换没啥问题。
    huangya
        16
    huangya  
       2018-03-20 19:26:45 +08:00 via iPhone
    @godlong 带 ovpn 的路由器或者路由器后面接一个功率很小的服务器 比如树莓派。树莓派上运行 ovpn
    29EtwXn6t5wgM3fD
        18
    29EtwXn6t5wgM3fD  
       2018-03-20 19:46:31 +08:00 via iPhone
    用 sstap 可以把 http 转成全局代理
    29EtwXn6t5wgM3fD
        19
    29EtwXn6t5wgM3fD  
       2018-03-20 19:46:53 +08:00 via iPhone
    转成 vpn
    godlong
        20
    godlong  
    OP
       2018-03-20 19:52:03 +08:00
    @shengyu 这个试过了,windows 下用 sstap 把 http 转之后,可以打开 ip 网站,但是打不开域名网站,猜测是 DNS 的 udp 包没转成,因为 sstap 不支持 http 代理转发 udp 数据包。

    而且 sstap 转之后,能把这个 windows 机子做成网关吗?您试过吗
    sunulin
        21
    sunulin  
       2018-03-20 20:55:05 +08:00 via iPhone
    老毛子固件路由器了解下
    WordTian
        22
    WordTian  
       2018-03-20 21:11:39 +08:00   1
    目标:实现在终端上不用设置就直接全局代理。

    首先是环境:
    网关处是 HTTP 代理,就是只能识别 HTTP 的包。

    然后是流程:
    终端发出 TCP/UDP 数据包
    内网得有台机器接收 TCP/UDP 数据包,并封装成 HTTP 包
    把 HTTP 包传到网关处
    外网得有台服务器把 HTTP 转回 TCP/UDP
    外网的服务器再把 TCP/UDP 发出去

    然后是实现:
    没搞过,不瞎说,坐等大神
    yaoliyc
        23
    yaoliyc  
       2018-03-20 21:40:18 +08:00 via Android
    @godlong 好像有 DNS over TCP 之类的
    godlong
        24
    godlong  
    OP
       2018-03-20 22:21:47 +08:00
    @WordTian 你的思路是对的。这个就是我主贴说的 openvpn 法。但是外网那台服务器的带宽决定我内网的上网速度了。现在是我想撇开这个外网服务器。

    因为 IOS 的 surge 可以把 HTTP 代理半全局(比如微信语音视频都可以,qq 语音视频也行),感觉是实现了 udp 的协议。

    所以我想 linux 上通过 ss-dir/redsocks2 也实现 surge 那样的功能,然后转成网关 /服务器供内网终端上网。折腾了好久的 ss-dir 好像不成功,必须要配置 ss 服务器。我不是为了翻墙,我只是为了翻阅公司的代理服务器....
    godlong
        25
    godlong  
    OP
       2018-03-20 22:24:01 +08:00
    @xenme 谢谢推荐 LELE,正在下载,准备灌装到 VMWARE 里面测试下效果。谢谢。
    WordTian
        26
    WordTian  
       2018-03-20 22:32:03 +08:00
    @godlong 从原理来看,你撇不开外网的那台机器的。
    内网有包的封装过程,外边也必须有个机器解封解封,而且外边那台机器必须能被你的网关访问到。

    一般来说外边那台机器肯定得有公网 IP 的 :(
    不过你可以瞅瞅这个贴里的东西,说不定对你有用 /t/430202
    godlong
        27
    godlong  
    OP
       2018-03-20 22:41:07 +08:00 via iPhone
    @WordTian 你说的对,可是我很好奇 surge 怎么实现的?感觉他把 tcp udp 全压进 http 代理里了。
    ios 上用 surge 微信语音,视频都没问题。但是用系统自带的 http 代理设置只能发文字微信信息。
    求解惑。

    或者说,把我现在 ios 当网关我也能接受,我就是想在电脑上实现 ios 加 surge 效果,然后把那台电脑做成网关给 ikuai 软路由使用。
    hw2411
        28
    hw2411  
       2018-03-20 22:50:43 +08:00 via Android
    是海油的吧,哈哈哈,proxifier 和 ss,想干啥都行吧
    godlong
        29
    godlong  
    OP
       2018-03-20 22:54:09 +08:00 via iPhone
    @hw2411 握爪。我试过这个方案,不算科学。。。没法做网关
    WordTian
        30
    WordTian  
       2018-03-20 22:56:31 +08:00
    @godlong 猜测 ios 在系统层面有个类似 iptables 的东西,能转发 IP 数据包。
    类 unix 系统应该都行,windows 估计够呛
    godlong
        31
    godlong  
    OP
       2018-03-20 23:03:54 +08:00
    @WordTian 所以我装了个 ubuntu 的虚拟机...但是不知道接下来怎么整,也安装了 ss-dir/redsocks2,不知道怎么个配置了
    WordTian
        32
    WordTian  
       2018-03-20 23:09:46 +08:00
    @godlong 慢慢折腾呗,生命在于折腾。。。
    说实话,要不是因为墙,我现在对网络的理解也不会有这么深
    godlong
        33
    godlong  
    OP
       2018-03-20 23:13:30 +08:00
    @WordTian 可惜咱俩翻的墙不是一堵墙,哈哈,我是翻公司的墙。
    Loyalsoldier
        34
    Loyalsoldier  
       2018-03-21 09:53:18 +08:00
    godlong
        35
    godlong  
    OP
       2018-03-21 16:30:09 +08:00
    @Loyalsoldier 感觉这个 udp2raw 也是需要公网 server 端解包的啊~~
    pagxir
        36
    pagxir  
       2018-03-22 17:41:13 +08:00 via Android   1
    @godlong 所以一帮没点网络知识的在这里啥推荐,好像狗屁膏药包治百病。
    pagxir
        37
    pagxir  
       2018-03-22 17:43:23 +08:00 via Android   1
    话说你们公司的内网有 dns 服务器么,这个服务器可以解析外网的域名么。如果可以的话,其实 udp 转发可以以后再弄。
    godlong
        38
    godlong  
    OP
       2018-03-22 18:14:37 +08:00
    @pagxir 内网的 DNS 服务器就是个笑话,只解析公司域名。我后来做了个 win2003 的 openvpn 到腾讯云,在这个 2003 上开了个 DNS 服务器。再搞了个 win2008 服务器装 sstap,DNS 域名解析由 2003 服务器完成,TCP 走 win2008,udp/ICMP 流量走 2003 服务器。感觉不是很稳定。还得再调,不是很完美。
    defunct9
        39
    defunct9  
       2018-04-14 14:51:17 +08:00 via iPhone   1
    开 ssh,我上去试试。ubuntu 做成网关流量走 10.10.10.10:8080 没问题
    godlong
        40
    godlong  
    OP
       2018-06-15 15:55:07 +08:00 via iPhone
    @defunct9 大侠有联系方式了?
    defunct9
        41
    defunct9  
       2018-06-15 17:04:18 +08:00
    @godlong 微信:defunct
    cia84806698
        42
    cia84806698  
       2018-10-24 16:15:30 +08:00
    注册一个账号回复一下
    win10+sstap 完美解决
    win7 不知什么原因无法使用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1294 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:18 PVG 01:18 LAX 09:18 JFK 12:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86