QQ在线支持
商务支持电话
13906050680
技术支持电话
0592-2651619
首页->局域网监控-> 外网访问内网(内网穿透)方法总结,外网怎样穿透内网访问
  • 摘要:外网访问内网(内网穿透)方法总结,外网怎样穿透内网访问,内网穿透,端口映射,端口转发,反向隧道,反向代理,局域网监控

     

    外网访问内网(内网穿透)方法总结,外网怎样穿透内网访问

    内网的一台电脑要上因特网对外开放服务或接收数据,都需要用到端口映射。端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址,采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。


    端口映射有什么功能?


    端口映射功能可以让内部网络中某台机器对外部提供WWW服务,这不是将真IP地址直接转到内部提供WWW服务的主机,如果这样的话,有两个弊端:一是内部机器不安全,因为除了WWW之外,外部网络可以通过地址转换功能访问到这台机器的所有功能;二是当有多台机器需要提供这种服务时,必须有同样多的IP地址进行转换,从而达不到节省IP地址的目的。端口映射功能是将一台主机的假IP地址映射成一个真IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转到内部一主机的提供这种特定服务的主机;利用端口映射功能还可以将一台真IP地址机器的多个端口映射成内部不同机器上的不同端口。


    端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供六万多个端口的映射,恐怕我们永远都用不完的。比如我们在公司的外部网络需要访问到内网的其中一个电脑的时候,比如远程桌面管理、网络管理局域网监控员工上网行为管理,或者内部的电脑来做网站服务器等等,都需要内网穿透的服务,所以应用是非常广泛的,现在有些人还用来做微信小程序的服务器等等;一下我们就来总结下,外网访问内网(内网穿透)方法:


    一、端口映射

    (一) 路由器的虚拟服务器(端口映射)功能

    (二) Windows上专用的端口映射工具PortTunnel

    (三) Linux端口映射工具:RINETD

    (四) nat123的端口映射

    (五) 花生壳内网穿透NAT-DDNS

    二、基于反向隧道的端口转发

    (一) ssh端口转发

    (二) Holer

    三、基于反向代理的端口转发

    (一) frp内网穿透

    (二) ngrok内网穿透

    (三) n2n内网穿透


    自建服务器或者监控时,如何使外网设备访问到内网,是个麻烦问题。这个任务称为内网穿透,解决方法通常是端口映射与端口转发。网上关于端口映射与端口转发之间区别的讨论很多,观点也不尽相同,在此我也无意争辩二者的区别,因为实际情况是,端口映射与端口转发这两个词在很多时候都混用了。在本文中,请各位暂且认同:端口映射发生于节点与路由/网关之间,以NATNetwork Address Translation,网络地址翻译)为原理;而端口转发以反向隧道、反向代理为原理,发生于两个网络节点的端口之间。


    一、端口映射

    要实现端口映射,如果是家庭宽带是公网IP,可以直接使用带端口映射功能的路由器,或者将网线插入一台电脑做网关(需要解决的是各服务器之间网络连接的问题,如何使其他服务器连上这台电脑,是通过网线桥接还是无线连接需要自行衡量);家庭宽带不是公网IP的,可以使用NAT服务提供商、DDNS服务提供商。


    (一) 路由器的虚拟服务器(端口映射)功能

    这种方法需要一个带有端口映射功能的路由器。我以中兴的天翼网关和树莓派motion网络服务为例。配置时,其中外部端口是外网访问的端口,例如可选9000,建议不要太小,因为服务提供商可能屏蔽较小的一些端口;内网端口是motion的端口,为80818080;协议选TCP;内部IP是树莓派的局域网ip。例如你的公网ip59.60.84.xxx,这些设置完以后就可以在浏览器中输入59.60.84.xxx:9000,即可看到实时画面。

    说明: https://img-blog.csdn.net/20170216131050832?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemJnamh5ODg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

     

    (二) Windows上专用的端口映射工具PortTunnel

    PortTunnel是一个实现端口映射的专用工具。它是一个直接运行的软件。如果操作系统为Windows NT/Windows 2000/Windows XP,第一次运行时选择StartPortTunnel会自动以服务方式运行。点击[Add]按钮添加条目,点击[Edit]按钮编辑现有条目,点击[Delete]按钮删除条目。

    在这个新建/编辑端口映射对话框中,我们要给该条目命名,然后设定输入端口(Port In)、绑定地址(Bind address)、输出端口(Port Out)和输出地址(Address Out)。其中,绑定地址是指监听该主机的哪一个IP(内部IP还是外部IP)。设为“Any(0.0.0.0)”则监听该主机的全部IP

    PortTunnel专门针对HTTPFTPSMTP服务的端口映射,提供了较多的参数设置,在相应的标签菜单下调整。此外,PortTunnel还提供了安全性设置和日志、统计等功能。

    附一篇教程:《PortTunnel [端口映射软件] 使用配置说明》

    (三) Linux端口映射工具:RINETD

    RINETD可以算得上Linux上最为简单好用的端口映射工具了,安装配置均很简单。在此我也就不展开说了,附一篇教程:《rinetd 一个linux下的端口转发工具》,若有需要,学着这个教程做一下就行。

    (四) nat123的端口映射

    nat123LinuxWindowsAndroid都适用,在其官网上都有相应的教程:

    Linux版教程 / Windows版教程 / Android版教程


    nat123提供了比较丰富的端口映射功能,有http映射(80端口)、https映射(443端口)、非80端口、非网站(其他端口)、全端口映射、全映射等。提醒大家注意,除全端口映射外,其他服务是不需要在访问侧(外网)加装p2p访问者软件的,可以方便使用【全映射是全端口映射的面p2p访问者软件版本】。nat123有免费线路,也有收费服务,具体的收费情况大家自己再行了解。

    我简单说一下全端口映射,以树莓派的vnc服务为例,首先你需要在nat123官网注册一个账号,然后树莓派上安装好nat123软件,并在本地APP上登录账号。nat123的端口映射管理功能在官网上【而不是在本地进行,或者说它只是没有告诉我们如何在本地进行管理】,所以你需要在nat123官网上添加端口映射时选择全端口映射(仅p2p),然后在安卓手机或Windows上安装p2p访问者(nat123官网下载),运行端口映射服务与vnc服务,对vnc来说,端口号=5900+桌面号,例如桌面号为1,那么端口号就是5901,打开p2p访问者,添加访问端口5901,注意p2p访问者要在后台运行,不要关掉,然后打开vnc viewer,输入域名和端口号5901,即可访问树莓派了。

    nat123配置较为简单,容易上手;有开放免费线路且使用体验较好;Linux/Windows/Android皆可使用,可能适合较多的人。

    (五) 花生壳内网穿透NAT-DDNS

    说到内网穿透,网上很多人都会提到花生壳的内网穿透。花生壳的解决方案是基于NATDDNS的。很多年前我使用花生壳的时候,这个服务确实还是可以的,免费,而且连接速度OK,现在用的人太多,速度自然降下来了,也开始提供付费服务了。具体内容我不多说了。

    花生壳官网:http://www.oray.com

     

    下面介绍端口转发,端口转发都需要一个公网IP服务器,如果自己没有的话,就只能寻找第三方提供的服务了。

     

    二、基于反向隧道的端口转发


    反向隧道端口转发的典型是SSH端口转发,下面我先介绍如何在自己有公网IP服务器的情况下用SSH反向隧道做端口转发,然后介绍一款开源的SSH端口转发工具(第三方服务)。


    (一) ssh端口转发

    ssh端口转发基础知识

    ssh的三个强大的端口转发命令:

    转发到远端:ssh -C -f -N -g -L 本地端口:目标IP:目标端口 用户名@目标IP

    转发到本地:ssh -C -f -N -g –R 本地端口:目标IP:目标端口 用户名@目标IP

    动态端口转发:ssh -C -f -N -g -D listen_port 用户名@目标IP

    -C:压缩数据传输。

    -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。

    -N :不执行脚本或命令,通常与-f连用。

    -g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

    -L 本地端口:目标IP:目标端口:将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -R 本地端口:目标IP:目标端口:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -p :被登录的ssd服务器的sshd服务端口。

    -D listen_port:指定一个本地机器动态的'’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.


    ssh端口转发简单测试


    1)只有树莓派和服务器

    步骤①:在树莓派上,通过远程端口映射,将服务器的2222端口映射到树莓派的22端口:

    ssh -fNR 2222:localhost:22 root@公网IP

    步骤②:服务器上访问树莓派:

    ssh -p 2222 pi@localhost

    但事实上,有时候我们可能更需要另一个设备可以访问树莓派,而不是在服务器上访问。因此这个时候我们就需要做两次映射。

    2)树莓派、服务器、第三方设备

    步骤①:在树莓派上,通过远程端口映射,将服务器的2222端口映射到树莓派的22端口:

    ssh -fNR 2222:localhost:22 root@公网IP

    步骤②:在第三方设备上,通过本地端口映射,将第三方设备的2222端口映射到服务器的2222端口:

    ssh -fNL 2222:localhost:2222 root@公网IP

    步骤③:在第三方设备上访问树莓派:

    ssh -p 2222 pi@localhost

    (二) Holer

    HolerGitHub地址:https://github.com/Wisdom-Projects/holer


    Holer是基于SSH的内网穿透服务。在Holer仓库的readme文档下有使用指南,没什么技术难度,我就简单说说:例如你想远程SSH登陆你的树莓派,将conf/holer.conf文件中原有的Holer Access Key修改为针对SSH服务的Holer Access Key,再启动Holer即可,服务端就配置完成了。Holer提供的SSH服务的映射端口是holer.org:65534,则在客户端的连接方式是:

    ssh pi@holer.org -p 65534

    可以看到,Holer的配置确实简单,但是其问题也十分明显,只有一个Holer Access Key作为唯一标识,大家都是用这个Key,连接数多了以后就出问题了。

    Holer也提供了独立的Access Key,这是需要付费开通的。

     

    三、基于反向代理的端口转发


    有公网IP服务器的人可以使用frpngrokn2n等反向代理工具来实现内网穿透。


    (一) frp内网穿透

    GitHub仓库:https://github.com/fatedier/frp

    GitHubReleaseshttps://github.com/fatedier/frp/releases/

    根据服务器/客户端所属架构与系统,在releases分别下载合适的版本,并解压出来。

    frps.ini是服务器端的配置文件,配置如下:

    [common]

    bind_port = 6666

    记住bind_portfrp服务的监听端口。

    启动服务端frps

    ./frps -c ./frps.ini

    而在客户端,我们要修改的配置文件是frpc.ini(以ssh服务为例):

    [common]

    server_addr = x.x.x.x

    server_port = 6666

     

    [ssh]

    type = tcp

    local_ip = 127.0.0.1

    local_port = 22

    remote_port = 2222

    server_addr是服务器的公网ipserver_port是服务器上设置的frp服务的监听端口。

    [ssh]部分的local_portssh服务的本地端口,默认是22,而remote端口并不是6666,而是由自己另外指定的服务器上ssh转发的目标端口,这里我选择2222

    启动客户端frpc

    ./frpc -c ./frpc.ini

    正确连接后,访问本地服务器则可以使用以下命令:

    ssh pi@公网ip -p 2222


    (二) ngrok内网穿透

    请看《自搭Ngrok实现树莓派内网穿透》


    (三) n2n内网穿透

    请看《n2n内网穿透神器(一条命令实现穿透)(linux,安卓,win,openwrt全介绍)


    作者: AnyView(网络警)网络监控软件   时间: 2019-3-4 16:42:17   点击:     

    相关资讯:
    [网络监控软件在企业网管中应用实践] 怎样对员工上网行为管理,网络安全审计,局域网行为监控,员工行为管理
    [网络监控软件在企业网管中应用实践] 企业网管七个错误,网络管理经验谈,怎样做好网络管理,局域网管理策略
    [网络监控软件在企业网管中应用实践] 如何最明智地管理员工上网行为,怎样局域网上网监控,员工上网行为监控
    [网络监控软件在企业网管中应用实践] 企业上网管理系统如何有效建立,怎样局域网上网监控,员工上网权限管理
    [网络监控软件在企业网管中应用实践] 局域网应用软件限制策略,局域网内网监控,应用程序监控,应用软件限制策略
    [网络监控软件在企业网管中应用实践] 局域网网管应用技巧:内网安全十大策略说明,内网安全与网络边界安全不同
    [网络监控软件在企业网管中应用实践] 如何关注中小企业网络管理,中小企业局域网监控,网络管理五大基本功能
    [网络监控软件在企业网管中应用实践] IP网络监控和局域网监控,逐渐成熟并升温的新兴市场,视频监控,网络监控
    [网络监控软件在企业网管中应用实践] 上网行为管理软件和上网监控系统是企业局域网管理的良方,上网监监控系统
    [网络监控软件在企业网管中应用实践] 局域网监控:三分技术七分管理,如何加强内网监控,网络监控软件,内网监控
■ AnyView(网络警)网络监控软件--功能检索
  • 服务电话:0592-2651619 / 13906050680 ; 钉钉:15359220936;微信:15359220936;Skype:Amoisoft;
  • 服务邮箱: Sales@amoisoft.com;Order@amoisoft.com;Tech@amoisoft.com;
  • 支持QQ:9908430(综合),850753251(购买1),573982850(购买2),969263561(技术1),53864605(技术2),332056791(技术3)
■ 联系我们获得支持和服务 ■ 信息留言反馈