公司的互联网访问策略异常的严格(据说用的深信服),之前还能用 nps 的.某次升级后就连不上了. 从内网 ping 外网没问题,上网也没问题,但是各种指定端口的 tcp 都连不上.ssh 也无法使用. 感觉从内向外只放开了 80 和 443 端口?
这种情况下,还能实现内网穿透么?
![]() |
1
IvanLi127 136 天前 via Android
xray
|
2
zhqiang 136 天前
没用过 nps ,但是感觉和 frp 应该差不了太多
公司也是封端口,只开放 80/443 使用 frp ,直接使用 443 端口映射到内网的 ssh 或者其他端口。 缺点一个公网 ip ( vps )只能映射两个端口,要是在想访问内网其他更多服务就比较麻烦了,没有那么多有公网 ip 得 vps |
![]() |
3
gps949 136 天前
本来一般也是靠 udp 穿透更靠谱,你说 tcp 连不上,udp 呢?
不过如果是深信服的 sase 可能比较难办,因为它实际上是所有流量先到它的 pop 节点,再统一由 pop 节点出去。你可以测试下用 ip 检测网站检测下你自己的公网 ip ,是不是和公司的出口 ip 不一样了(会变成它 pop 节点的 ip )。 据说深信服这玩意似乎绑定 mac ?好像虚拟机也搞不定?你可以尝试下修改网卡 mac 或者在桥接网络的虚拟机里连下试试。 |
![]() |
4
xubingok OP @gps949 害.我们办公用的云桌面.我内网的机器实际上就是一台虚拟机.至于查看 ip 这个.我在 ip138 之类的网站倒是能看到自己的公网 ip.但是公司的出口 ip 不知道怎么查啊..
|
![]() |
5
xubingok OP @zhqiang 你说的略高端,有点听不懂..
我感觉所谓的内网穿透,应该都是内网机器连接上外网的一台服务器(我在腾讯云有这样的 vps,有公网 ip).然后外网其他机器就可以通过这个跳板访问内网各种系统了. 现在就是内网使用 80/443 以外的端口都连不上外网机器. 但是做开发的时候发现用于 mqtt 的 websocket 似乎又能连上,一时之间也搞不清楚这个防火墙策略了... |
![]() |
6
cpstar 136 天前
难道还有协议检测?把 frp 的端口绑到 80/443 上行不?
|
![]() |
7
cpstar 136 天前
不对,反了,你这个是要内网往外穿,内网访问外边的非 80/443 。那不是内网穿透,然后把内网的用某种方法放到内网墙外,绕开墙上的 80 、443 限制。
|
![]() |
8
lqw3030 136 天前
是不是应该先考虑下为什么"公司的互联网访问策略异常的严格",V 站因穿网引发安全事件案例数不胜数了
|
9
zhqiang 136 天前
没用过 nps ,但是感觉和 frp 应该差不了太多
公司也是封端口,只开放 80/443 使用 frp ,直接使用 443 端口映射到内网的 ssh 或者其他端口。 缺点一个公网 ip ( vps )只能映射两个端口,要是在想访问内网其他更多服务就比较麻烦了,没有那么多有公网 ip 得 vps @xubingok 不高端啊,和你得用法一样,你只要在你的 vps 上面设置 443 绑定到你内网机器得非 443 端口就可以了啊 不如你设置 vps 得 443 绑定到你内网某个机器得 3389 端口,这样你在 rdp 客户端设置连接得地址为 '公网 ip:443‘就可以了啊。 |
![]() |
10
gps949 136 天前
@xubingok
云桌面。。。那连 sase 都不用了。要我就懒得折腾了 如果没 sase (即从外部能正确判断公司出口 ip 原路回源)的话,可以尝试下 tailscale ,但就算能通多半也是走 derp 中转的。 如果它也不行,就得看你具体需求和情况,具体问题具体分析了,比如看是外面随处连公司还是公司连家里之类的。 |
11
cutepig 136 天前 via Android
https://github.com/jpillora/chisel
这个应该可以,到但有机会被防毒软件报误报 |
12
zhqiang 136 天前
@xubingok 你的意思是你要在公网通过内网穿透访问你公司内部得某台机子?如果这样要看你们公司得防火墙策略了。这个我没有试验过。
我们公司是浏览网页都没有问题,但是我想 ssh 连接外网,只能走 443/80 ,所有其他端口包括 ssh 都关闭了。所以我在公司想管理我得 vps ,除非是供应商提供了 webssh ,否则我只能回家搞。 目前我是家里开了一台 linux ,通过 frp 443 绑定到家里得 linux 得 ssh server 得端口来连接到家里,然后通过家里得 liunx 在 ssh 到公网得 vps ,管理所有得 vps |
![]() |
13
yolee599 136 天前 via Android
这个应该让运维解决吧,除非你就是运维,直接问客服
|
![]() |
14
sujin190 136 天前
都只开放 80/443 了,说不定还开着流量分析和上网行为分析,小心被抓啊,看起来老板挺看重这种行为的,别搞出个”大事“来,2333~
|
15
greatbody 136 天前 via Android
建议自备电脑,用手机流量共享 WiFi 上网。否则可能被公司开除。
|
![]() |
16
xubingok OP @cpstar 需求场景就是,我们干活在一台内网机器上面.但是这个机器用起来非常不爽.我想在外网的笔记本上干活,需要能从外网访问某些内网才能访问的系统,比如 gitlab,后端接口之类的.
之前的方式就是公网 vps 安装一台 nps 服务端,然后内网机器执行 nps 客户端,连上以后,就可以把公网 vps 当做代理,从外网访问内网各种系统了. |
![]() |
18
xubingok OP @zhqiang 我内网机器连公网 ip 都没有...咋可能把外网 vps 接口绑定到内网 3389 端口啊..而且防火墙估计也不会允许内网机器的 3389 可以被外网连上吧.
|
![]() |
20
cpstar 136 天前
OP 36# 哦,这么说,就正了。公网 frps 开 80/443 端口,内网 frpc 访问 frps 的 80/443 ,nps 类似。但是如果你们的设备检测协议即 http/https 内容的话,那就不行了——如 6#所述。
再者就是 14#说的问题,如果上了行为分析,那必然会检测协议内容,上述方法无效。 |
![]() |
23
luny 136 天前
不建议折腾了,这是挑战公司红线的做法,后果比较严重
|
24
exqibao 136 天前
如果没理解错的话,是公司向外访问,目标端口只允许 80 或 443 。
1.内网电脑搭 shadowsocks 服务的,端口 12345 ; 2.内网电脑起 frp 客户端,通过公网 vps ,把公网 443 端口转到内网 12345 端口; 3.公司电脑使用 shadowsocks 客户端,连接公网 443 端口,建立本地 socks5 代理,端口 1080 ; 之后,所有服务都通过本地 1080 端口代理访问,如果部分软件不支持设置代理,可以先使用 nadoo/glider 工具打洞,glider -listen tcp://:22 -forward socks5://localhost:1080,tcp://内网 ip:22 。 也可以不用 shadowsocks 之类的,直接内网建 socks5 代理服务,暴露到公网 443 端口上,只是不太安全。 如果有 https 协议分析的话,把 shadowsocks 服务换成 trojan 的。 |
![]() |
25
weixind 136 天前
建议换公司。不要干公司严令禁止的事。没必要。
|
26
Seanfuck 136 天前
可以自己开发一个
|
27
EIJAM 136 天前 via iPhone
云桌面一般不是都提供了互联网接入么,完全可以在自己的笔记本上开云桌面(笔记本走手机热点),剪贴板是共享的。
|
![]() |
28
ysc3839 136 天前
标准的 http 不行,因为发送请求后只能单向接收,http proxy connect 可以。
|
29
phiysng 135 天前
楼上 HTTP CONNECT 正解,可以用七层协议传输 4 层的 TCP 数据
|
30
systemcall 135 天前
开一个 trojan vmess vless 之类的,配置好伪装,只要没有 mitm 就基本上没法检测
要是公司会通过自签证书解密 HTTPS 流量,那什么伪装都是白瞎了,因为肯定还有别的监控 |
![]() |
31
recall704 135 天前 via iPhone
gost ?
|
![]() |
32
mikewang 135 天前
首先,建议遵守安全规定。
不过针对问题回答,可以 ping 通,就可以使用 icmp 隧道。使用 HTTP 的 Neo-reGeorg 也可以,不过个人觉得效率不是很高。十多年前的 GoAgent 也是基于 HTTP 的,那个时候还使用的是自签名证书。通过隧道后再 FRP 。 |
35
gujigujij 129 天前
刚写完,基于 websocket 的,github: aHR0cHM6Ly9naXRodWIuY29tL3NhemltYS9uYXRfdHJhdmVyc2Fs
|
![]() |
36
xubingok OP @gujigujij 卧槽.大佬感谢啊.我也想着实在不行用 socket 搞一个算了,公司总不能连 socket 都屏蔽吧.
只是 http 相关知识我是一片盲区,没想到大佬已经整出来了. 我这就去试试,感谢大佬~ |
![]() |
37
xubingok OP @gujigujij 已试用.技术上是可行的.ws 超时时间 3s 还是短了点.用于实践的话还有些问题:
1.内网 https 的页面好像配置上去不行,不知道 config 文件是否支持域名. 2.用着用着 ws 就断了,可能需要一些重连机制. 技术可行,继续寻求方案的动力又有了哈哈 |
38
gujigujij 126 天前
@xubingok 域名和 https 配置类似这样. 公网 https 测过, 内网没有测试.
``` { "server": { "port": 11111, "host": "t.xxxx.coxm", "https": true, "password": "helloworld", "path": "/websocket_path" }, "client": [ { "name": "ssh", "remote_port": 1222, "local_port": 22, "local_ip": "127.0.0.1" } ] } ``` 重连不知道稳不稳定, 刚开始写后来又 push 了好几次代码, 我需要再测测. |