Linuxword Global
当前位置: 通信协议 > 内网穿透(Web服务、远程桌面)
内网穿透
内网,其实就是在公司或者是家庭内部,建立的一种局域网络或者是办公网络,从而实现多台电脑之间可以进行资源的共享,包括设备、资料、数据等。
外网,则是由一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,也就是我们经常说到的互联网。
内网穿透就是别人通过外网能够访问到我们本地的服务器,也称为内网穿透动态域名解析服务(nat-DDNS)是一种基于动态域名服务(DDNS)和网络地址转换(nat)的服务器内外网动态映射方法。
我们在做开发时,搭建的本地服务器只能供我们自己电脑的浏览器访问,或者处于同一个wifi下的手机访问,但是我们如果想让别人访问到我们的本地服务器。 我们就要做内网穿透了。
内网穿透的原理
内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用ADSL(Asymmetric Digital Subscriber Line,非对称数字用户线路,是宽带接入技术的一种)的宽带路由器,将一个动态或者是固定的公网IP,最后ADSL在交换机上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。
NAT(网络地址转换)
NAT(Network Address Translation,网络地址转换)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
NAT工作原理:
当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如下图所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共 IP,为202.20.65.5;私有网络端口的IP地址是保留地址,为192.168.1.1。

 

l8qxsuxoeu

  • 1.

    **客户机发起请求:**私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP包Dst=202.20.65.4,Src=192.168.1.2。(src = source,源;dst = destination,目的)
  • 2.

    **NAT网关将私网IP转为公网IP:**当IP包经过NAT网关时,NAT Gateway会将IP包的源IP转换为NAT Gateway的公共IP并转发到公共网,此时IP包Dst=202.20.65.4,Src=202.20.65.5中已经不含任何私有网IP的信息。
  • 3.

    服务端响应:Web Server发出的响应IP包Dst= 202.20.65.5,Src=202.20.65.4发送到NAT Gateway。
  • 4.

    NAT网关将公网IP转为私网IP:NAT Gateway会将IP包的目的IP转换成私有网中主机的IP,然后将IP包Des=192.168.1.2,Src=202.20.65.4转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的
 

7jmmzh3r96

  • 1.

    NAT网关连接跟踪:NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪connection track。
    在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。
 

p9c6rbit97

  • 1.

    **NAT网关端口转换:**如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机。
    NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机(端口不同)访问同一服务器,那么在Track Table里加入端口信息即可区分,如果两客户机端口正好相同,那么在实行NAT的同时对源端口也要做相应的转换。

 

hzkla28zra

NAPT原理(网络地址端口转换)
NAPT(Network Address Port Translation,网络地址端口转换),是NAT的进一步扩展,在NAT进行IP地址转换的同时进行Port的转换。
 
内网穿透工具
工具名称
模式
支持模式
教程文档
说明
​Frp​
免费
TCP、http(s)、udp
​官网​
推荐
​Sunny-Ngrok​
免费/收费
TCP、http(s)、udp
​官网​
推荐
​Ngrok​
免费/收费
TCP、http(s)、Websocket
​官网​
速度慢
​Natapp​
免费/收费。
TCP、http(s)、wss
​官网​
免费需实名认证
 
其他:小米球(免费/收费)、echosite(收费)、Ssh、autossh(免费)、花生壳(免费模式,不技持web访问)。
​Frp 安装使用​
Window安装过程
​查看官网教程​
  • 1.

    **Sakura frp账号注册。**在官网https://www.natfrp.com/注册,成功后会跳转到 管理面板,在左侧栏点击软件下载,win10选第一个就好了。
 

image-20200809165843825

image-20200809165843825
  • 1.

    创建并启动隧道。
     
  •  
    打开刚才下载的软件,点击安装SakuraLauncher.exe,在界面中输入访问密钥进行登陆。密钥在官网的管理面板查看。
  •  
 

image-20200809183942429

image-20200809183942429
 

image-20200809184333846

image-20200809184333846
  •  
    登陆完成后,点左边菜单栏的隧道,点击新建隧道。也可以在官网中创建隧道,创建后,需要重启SakuraLauncher.exe,才能在软件隧道列表中看到。
 

image-20200809184538061

image-20200809184538061
  •  
    本地ip:通常可以填127.0.0.1。window通过cmd运行ipconfig查看。
    查看本地IP地址:按win+r,输入cmd按enter,输入ipconfig
  •  
    端口:远程桌面的端口默认是3389(左侧TCP端口监听列表中,如果没有3389,说明远程桌面服务没启,需要手动启动下)。其他,如启动web服务localhost:3000,则填3000。
    启动远程桌面端口:输入services.msc按enter,找到 remote desktop services,右击选择启动。或者计算机 -> 管理 -> 服务和应用程序 -> 服务 -> Remote Desktop Services,启动远程服务。
  •  
    隧道名称:可不填,会产生一个随机的名称
  •  
    隧道类型:远程桌面选择TCP,web服务也可以选择TCP。如果选http\https类型,需要有备案过的域名。
  •  
    远程端口:可以自己指定,范围是10240~65535,不能和已有的重复。默认0,会随机分配一个。
  •  
    服务器:一般没有特殊需求可能随便选。如果是web服务,则需要查看服务器是否支持建站。官网查看隧道类型介绍​

 

image-20200811004102324

  •  
    点击开启刚才的隧道,会弹出日志信息。这个日志信息上面的IP或者服务器域名+端口,是用于远程桌面连接、web页面访问的地址。
 

image-20200810012342674

Mac安装过程
​查看官网教程​
  • 1.

    下载frpc_darwin_amd64文件。
  • 2.

    用 root 权限执行自动安装的脚本:sudo bash <(curl -s https://getfrp.sh)。
  • 3.

    根据安装后的提示,启动隧道:<frpc_darwin_amd64文件路径> -f <账户密钥>:<隧道ID>
我在自动安装过程中,执行命令sudo bash <(curl -s https://getfrp.sh)出错了;后来试了sudo wget -O- https://getfrp.sh也不行,是mac的wget不支持https协议;最后,我是将文件下载到本地,再用bash执行。
创建http(s)隧道
  • 1.

    必需自己要有可用的域名。如果没有,就创建tcp隧道,一样可以访问web页面。
  • 2.

    不是所有服务器都支持建站,具体需查看服务器的描述。
  • 3.

    通过所选服务器的域名或ip + 端口来连接或访问(无论是web服务,还是远程桌面连接)。
​Sunny-Ngrok​
  • 1.

    ​注册账号​
  • 2.

    ​下载客户端。解压后有两个文件:sunny.exe和Sunny-Ngrok启动工具.bat。
  • 3.

    ​购买(有免费服务器)、开通隧道​
  • 4.

    命令行启动隧道:
     
  •  
    方法一:通过 cmd命令行进到 sunny.exe所在的目录执行,运行:sunny.exe clientid 隧道id或者sunny.exe clientid 隧道id,隧道id(多个隧道同时启动)。
  •  
     
  •  
    方法二:通过 Sunny-Ngrok启动工具.bat 启动,直接输入隧道id就好了
  •  
​Ngrok​
  • 1.

    **下载 -> 解压 -> 安装:**在Linux或OSX上,您可以使用以下命令从终端解压缩ngrok。在Windows上,只需双击 ngrok.zip。
  • 2.

    **注册账号:**运行此命令会./ngrok身份验证令牌<your_auth_token>,将您的身份验证令牌添加到您的 ngrok.yml文件中。连接帐户将在仪表板上列出您打开的隧道,为您提供更长的隧道超时时间,以及更多。访问信息中心以获取您的身份验证令牌。
  • 3.

    **启动:**命令板中试执行./ngrok help,查看是否安装成功;运行./ngrok http 80启动80端口的http隧道。
 
恢复window 10远程桌面功能
如果window 10是家庭版,则不支持远程桌面,需要安装 RDP Warp 恢复Win10家庭版系统的远程桌面访问功能。
  •  
    下载 RDP Warp。项目地址:https://github.com/stascorp/rdpwrap,在页面的Release找到下载页面,下载zip文件,解压。
 

image-20200809172337095

image-20200809172337095
  •  
    首先运行RDPCheck.exe,这是一个测试程序,会尝试建立一个和本机之间的远程连接。如果连接成功,那么说明你的主机是支持完整的远程桌面连接功能的,也就不需要进行后续操作了。如果失败,那么接着以管理员身份运行install.bat,执行安装。

 

image-20200809172512699

  •  
    安装程序结束之后,运行RDPConf.exe,查看目前的远程桌面服务的运行状态。
    如果Wrapper state:Not installed,是没有安装成功,可能是被杀毒软件拦截了。
 

image-20200809174016918

image-20200809174016918
**如果Listener state一项是红色的,显示not listening [not supported],**这是因为其中一个文件无效引起的,我们可以手动加下。
 

image-20200809182128358

image-20200809182128358
解决方法:
  • 1.

    以管理员权限运行 Powershell/CMD
  • 2.

    运行命令 net stop termservice,关闭Remote Desktop Services服务
  • 3.

    下载**rdpwrap.ini文件,**将下载到的文件替换到 C:\Program Files\RDP Wrapper文件夹。注意:rdpwrap.ini有可能对你的电脑无效,这跟window系统版本有关,你可以从网上找其他rdpwrap.ini文件。
  • 4.

    运行命令 net start termservice,恢复 Remote Desktop Services 服务
  • 5.

    运行update.bat,再运行RDPConf.exe查看。成功的话。
Diagnostics里面的三个状态都是绿的,那么远程桌面连接功能已经恢复了。
 
远程桌面连接
内网的连接,直接输入被控电脑的本地ip即可;外网需要先做内网穿透。
远程桌面连接(主控电脑):
window 7:Windows -> 附件 -> 远程桌面连接 -> 输入被控电脑的本地IP或内网穿透后的ip
window 10:单击搜索 -> 远程桌面连接 -> 打开 -> 输入被控电脑的本地IP或内网穿透后的ip
mac: ??
允许连接远程桌面(被控电脑):
window的远程桌面连接,可以使用自带的远程桌面连接;mac需要借助microsoft remote desktop类的工具实现。
  •  
    window 7:计算机 -> 右击,选择【属性】 -> 远程设置 -> 远程,设置允许远程控制。
  •  
    window 10:开始 -> 设置 -> 系统 -> 远程桌面,
远程桌面连接,需要注意:
  • 1.

    被控电脑正常运行
  • 2.

    被控电脑启动了远程桌面服务,且设置为允许远程桌面服务。
  • 3.

    需要被控电脑的登录账号和密码。有些电脑,如果有没密码,是不允许远程桌面连接的,如:window 7。
  • 4.

    有些电脑的防火墙或杀毒软件,可能会影响远程桌面连接服务。
microsoft remote desktop
  • 1.

    下载安装:
    mac:https://microsoft-remote-desktop-connection.softonic.cn/mac
    window:https://remote-desktop-windows-10.softonic.cn/download
  • 2.

    添加被控制 PC 的 IP 、登录账号、密码。

 

20200809211913

teamviewer
TeamViewer 是全面的远程访问、远程控制及远程支持解决方案,几乎适用于所有桌面和移动平台,包括 Windows、macOS、Android 及 iOS。 使用流程如下:
  • 1.

    下载:https://www.teamviewer.cn/cn/products/teamviewer/,安装软件**(主控和被控PC都必需安装)**。
  • 2.

    注册账号。
  • 3.

    输入伙伴的ID(被控电脑的teamviewer ID)。
 

ABD9-CB2A-D9B5-63F72FB35DA1

image-20200812204943589

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2331 篇
  • 草稿数目: 12 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5981 个
  • 注册用户: 139 人
  • 访问总量: 8,652,932 次
  • 最近更新: 2024年4月25日