内网映射外网访问
公司内网那台测试服务器,内网我本来只想自己用。映射结果产品经理说“给我个地址,外网我在家看看”,访问运维说“别开公网端口,内网不安全”,映射于是外网就有了这篇文章。 内网映射外网,访问说白了就是内网让外面的人能访问你家里或公司局域网里的某台机器。这台机器可能跑着Web服务、映射数据库、外网摄像头,访问或者就是内网个远程桌面。它没有公网IP,映射或者有公网IP但被防火墙挡着。外网你要做的,是在中间搭一座桥。 如果你家宽带能拿到公网IP——现在很多地区还能,打运营商客服电话要就行——那就在路由器上做端口映射。把外网某个端口(比如8080)转发到内网那台机器的80端口。外面的人访问 这事儿我干过。去年帮朋友调一个后台,他家是电信宽带,光猫改桥接,路由器拨号,公网IP到手。在路由器后台加了一条虚拟服务器规则,外部端口8899,内部IP 192.168.1.100,内部端口3000。保存,重启服务,外面用手机4G网络一访问,通了。前后不到十分钟。 但问题也很明显。公网IP会变,除非你搞DDNS。而且把内网机器直接暴露出去,等于在墙上凿了个洞。那台机器如果有漏洞,整个内网都可能被摸进来。我后来给那台机器单独划了VLAN,防火墙只放行特定源IP,算是补了补。 很多小区宽带、移动宽带,早就不给公网IP了。你拿到的地址是运营商大内网里的 方案有两个方向。一是内网穿透工具,比如frp、ngrok、ZeroTier。原理是内网机器主动连到一台有公网IP的服务器,把流量带出去。frp我用了两年,配置不算复杂:服务端跑在阿里云最便宜的ECS上,客户端跑在内网,配好 ZeroTier更省事,装完加入同一个网络,每台机器分配一个虚拟IP,像在同一个局域网里。缺点是依赖第三方服务器,延迟看运气。我拿它连过家里的NAS,看个文件还行,传大文件就有点飘。 另一个方向是找运营商要公网IP。打客服电话,说“家里装监控需要外网访问”,有时候能给。不同地区政策不一样,多打几次,换个客服,可能就给了。我有个朋友在南方某市,联通宽带,打了三次电话,最后给了动态公网IP。虽然会变,但配合DDNS够用。 不管用哪种方式,别把内网服务裸奔到公网。至少加一层认证。Web服务上HTTPS和Basic Auth,SSH改端口加密钥登录,数据库绝对不要直接映射。我见过有人把MySQL 3306映射出去,密码还是 还有个细节:端口映射时,外部端口别用常用端口。8080、3389这些,扫描器天天盯着。换个高位端口,比如 最后说个真实案例。上个月帮一个创业团队调内网映射,他们用frp把测试环境暴露出去给外包团队看。结果frp服务端的 内网映射外网,技术本身不复杂。复杂的是平衡方便和安全。你图省事,风险就找上门。多花十分钟配个认证,比事后补救强得多。最直接的办法:端口映射
你的公网IP:8080,就能看到内网的服务。没有公网IP怎么办
10.x.x.x或100.64.x.x。这时候端口映射没用,因为你连自己家的门都找不到。frpc.ini,一条ssh -R或者http隧道就起来了。访问公网服务器IP:6000,流量就转到内网22端口。安全这事儿不能省
123456,第二天就被挖矿了。49152以上,能挡掉不少自动化攻击。虽然治标不治本,但省心。token设得太简单,被人扫到,直接连上来把内网一台Windows机器打了。还好那台机器没重要数据。后来换成密钥认证,加了allow_ports白名单,才算消停。