V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sk2580
V2EX  ›  Python

大佬们请教一下,“本地 Python ”和“本地 A 软件”被客户防火墙禁止联网了。如何绕过客户防火墙,达到让“A 软件”连接“公网的 B 服务器”的目的?

  •  
  •   sk2580 · 2021-02-09 16:42:25 +08:00 · 1677 次点击
    这是一个创建于 1165 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景如题。
    补充:软件需要连接外网的服务器才可以使用。谷歌浏览器是可以正常联网的(客户内网和公网都可以)
    目前客户不允许装第三方的软件,他们没有超级管理员权限。


    我的想法是搞一个类似这样的隧道(公网 B 服务器<->本地浏览器<->本地 python 代理服务器<->本地 A 软件)来传递 http 请求
    使用 selenium 的 webdriver 操作一个浏览器,然后写段 js 扔到浏览器里进行“http 请求的接收和转发”,这段 js 通过 selenium 的 webdriver 起到 连接 b 服务器和 本地 python 代理服务器的作用。
    大佬们,这样可行吗?另外还有什么更好的办法?
    13 条回复    2021-02-10 20:52:24 +08:00
    lrvy
        1
    lrvy  
       2021-02-09 16:48:13 +08:00
    直接和客户说明情况加白。别私自建隧道,这是违法的行为。
    liuxu
        2
    liuxu  
       2021-02-09 17:02:18 +08:00
    这不是技术问题,是规范,不让连就不要换法子代理,而是应该找管理员申请,不然你这属于私建信道,客户可能被管理员处理

    楼上,国内穿不违法
    liuxu
        3
    liuxu  
       2021-02-09 17:07:22 +08:00
    @liuxu 当然换一个想法,既然允许 80 和 443,也就是没有完全禁止联网服务,那可以让 B 服务使用 80 和 443 做服务端口,合规

    也可以使用服务器 C 打开 80 和 443 做端口转发,为 A=》 C ( 80/443 转发)=》 B(服务端口),服务器 C 作为 80 和 443web 端口服务,符合客户防火墙限制规范
    sujin190
        4
    sujin190  
       2021-02-09 18:05:12 +08:00 via Android
    @liuxu 你理解错了,他们不是允许 80 和 443,是允许浏览器上网,只是浏览器用了 80 和 443,你这样是不合规的,赞同楼上说的,客户的问题就和客户说清楚,让客户自己解决,别私接方案
    sujin190
        5
    sujin190  
       2021-02-09 18:07:19 +08:00 via Android
    当然方案其实是可以的,webdriver 操作浏览器就算了,否则你怎么能说清你没有操作其他的呢
    westoy
        6
    westoy  
       2021-02-09 18:10:34 +08:00
    @liuxu

    给客户部署 VPN 属于增值电信业务,按照电信条例,要许可证的, 有专项种类
    liuxu
        7
    liuxu  
       2021-02-09 18:26:53 +08:00
    @sujin190 把 B 的业务作为 HTTP 传输即可,浏览器本身就具备各类应用层协议,ws,webrtc
    Ranying
        8
    Ranying  
       2021-02-09 18:27:21 +08:00
    @westoy 没看到有部署 VPN,我觉得只是一个本机的流量转发而已。
    liuxu
        9
    liuxu  
       2021-02-09 18:28:49 +08:00
    @westoy 你看的哪份文件,我参照的《计算机信息网络国际联网管理暂行规定》以及《国际通信出入口局管理办法》,前提是跨境。
    ericww
        10
    ericww  
       2021-02-09 19:57:39 +08:00 via iPhone
    让管理员添加软件 A 到白名单
    cpstar
        11
    cpstar  
       2021-02-09 20:03:58 +08:00
    问题与描述不相符啊

    客户不允许安装第三方软件,这是症结,所以本地 A 软件要怎么才能安装到目标机器上呢?然后才是网络传输问题。

    既然浏览器可以联网,要么防火墙上白名单网站,要么浏览器做了特殊的 UserAgent 然后防火墙配合阻断。Either way,都可以伪装成浏览器,发送 HTTP 数据包。所以网络根本不是问题,反而是没有权限安装软件。

    LZ 继续补充问题吧,没说清楚。
    cz5424
        12
    cz5424  
       2021-02-10 00:25:51 +08:00 via iPhone
    不允许安装第三方软件,然后自带 Python ?,执行一个 exe 算不算安装软件,可以就开个 frp 得了
    no1xsyzy
        13
    no1xsyzy  
       2021-02-10 20:52:24 +08:00
    @cpstar Windows 防火墙可以根据可执行文件哈希值来设置规则,这种情况下你无法伪装。
    至于 SELinux 可以根据可执行文件路径控制,同时也可阻止对可执行文件的修改。
    本地软件 A 显然已经在机器上了。

    但具体是什么方式,或者甚至可能真是只放行 80/443 呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2301 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:11 · PVG 00:11 · LAX 09:11 · JFK 12:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.