关于内网穿透:ZeroTier-实现家庭网络和工作单位园区网互访

ZeroTier 是一家采纳收费商业模式的软件公司,其提供专有软件、SDK 以及商业产品和服务,用于创立和治理虚构软件定义网络。该公司的旗舰终端用户产品 ZeroTier One 是一个客户端应用程序,可使个人电脑、智能手机、服务器和嵌入式设施等设施平安地连贯到点对点虚构网络。 首先通过 GitHub 账户登录 ZeroTier Central ,建设一个虚构网络,并为其配置 IP 地址段。这个网段将作为园区网入口服务器、家庭网络小路由器以及各种其余客户端之间的互联地址。ZeroTier 可能把为这个网络配置的路由信息流传到每个连贯到这个网络的设施上,这样就能够灵便的配置接入设施及网络间的相互拜访了。 1. Linux 客户端软件装置配置依照 ZeroTier 下载 页面提醒,就能够失常装置软件。装置后能够通过如下命令退出 ZeroTier Central 上建设的网络: sudo zerotier-cli join <your_network_id>而后须要在 ZeroTier Central 配置 Members 容许拜访并欠缺各种信息,之后该零碎就能够拜访这个网络了。对于 ZeroTier 网络路由中配置了==公网地址路由表项==的状况,还须要做如下配置,能力使这类路由失效: sudo zerotier-cli set <your_network_id> allowGlobal=12. Debian Linux 园区网入口服务配置对于园区网这种存在多跳路由的大规模网络的近程拜访,能够通过设置一个 NAT 入口服务器来实现。 首先也依照官方网站的要求装置并配置服务,利用 zerotier-cli 命令以及 ZeroTier Central 配置 Members 并减少拜访园区网网段的路由表项。在此基础上再进一步配置服务器的 NAT 性能,将 /etc/sysctl.conf 文件中的 net.ipv4.ip_forward=1 勾销正文。而后执行如下脚本; #!/bin/shsudo sysctl -w net.ipv4.ip_forward=1PHY_IFACE=eth0ZT_IFACE=$(ip link | grep -oP 'zt\w+')sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADEsudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPTsudo apt install iptables-persistentsudo systemctl enable netfilter-persistent.servicesudo iptables-save -f /etc/iptables/rules.v4须要留神的是,docker 之类的程序会更改 iptables 的配置,倡议执行上面命令,停掉 docker 服务并清空 iptables 规定,再执行下面的脚本。 ...

August 25, 2023 · 2 min · jiezi

关于内网穿透:使用HHDESK完成网站穿透

在工作和学习中,有很多内网网站,不能通过公网进行拜访,须要特定的IP;而IP费用极高,比方按IP免费,费用依据流量带宽来,——这着实是一笔很大的开销。而通过HHDESK,应用hhtp协定代理,也能够实现此操作,为用户节约大量开销。如图所示,在不应用代理的状况下,浏览器无奈关上网页http://172.31.22.63:8080/以下步骤为您讲述,如何通过hhdesk穿透内网,拜访原本不能拜访的网站。 1 在网关服务器上启动hhdesk当时在网关服务器上部署好HHDESK,(这里用到的是恒辉的管控平台,应用其VNC性能来启动HHDESK。)关上VNC窗口,在VNC窗口中配置代理服务器信息,点击启动,便间接开启代理服务。 2 配置浏览器实现代理拜访此处应用的是Firefox浏览器,设置形式如图(连贯设置打开方式为设置——网络设置);请依据理论状况配置您的代理服务器。 点击确定,刷新页面,弹出对话框; 填入方才在HHDESK中设置的用户名和明码,点击登陆。 配置好之后,即可关上原本不能拜访的连贯http://172.31.22.63:8080/ 3 总结应用HHDESK,您只须要将其部署于所须要的服务器上,便能够多台电脑拜访本来不能拜访的网址,这本须要破费大量金钱购买IP。——HHDESK穿透,能够帮忙企业节俭大量IP资源和流量资源。此外,在日常工作中,常常会遇到须要出差/居家办公的状况,而很多工作上的内容,须要用到公司外部资源;以前的解决形式,大多数是通过近程。而近程弊病较多,比方占带宽、卡顿、须要多个IP等。通过此性能,用户也能够毫无阻碍的拜访到公司外部资源,与在公司应用工作电脑并无二致。——这也极大的晋升了工作效率及稳定性。

June 7, 2023 · 1 min · jiezi

关于内网穿透:使用nps搭建内网穿透并配置泛域名解析

@TOC 前言nps是什么? nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前反对tcp、udp流量转发,可反对任何tcp、udp下层协定,此外还反对内网http代理、内网socks5代理、p2p等,并带有功能强大的web治理端。 1. 筹备工作一台领有公网IP的云服务器,我这里应用的是腾讯云轻量应用服务器,零碎为CentOS。云服务器中须要装置配置好 Docker。参考地址:菜鸟教程-docker的装置云服务器中装置好宝塔面板,如不须要域名拜访,能够跳过此步骤。参考地址:宝塔面板装置教程nps 服务器端和客户端的程序。下载地址:https://github.com/ehang-io/nps一个已实现备案的域名,用来配置内网穿透泛域名拜访,如不须要域名拜访,能够跳过此步骤。 2. 服务器端搭建nps并配置2.1 配置nps配置文件nps装置时须要加载配置文件,所以须要先创立好配置文件。 下载nps服务端配置文件到本地,抉择与服务器零碎绝对应的版本,我这里抉择 linux_amd64_server.tar.gz ,下载地址:https://github.com/ehang-io/nps/releases 解压下载好的安装包,进入 conf 目录下,对 npc.conf 配置文件进行批改。 首先批改 http_proxy_port 和 https_proxy_port 的端口号为20080和20443。 配置 bridge_port 为 28024 。配置批改 web_username 、 web_password 和 web_port ,其中 web_port 批改为 28080 , web_username 、 web_password 是web治理端的用户名和明码,自行配置即可; web_port 是web治理端的端口号,通过 IP:端口 即可拜访web治理端。其余配置请参照nps服务端配置文档并依据须要自行配置。参考地址:nps服务端配置文件注:这里为了避免与其余已装置的环境抵触,将所有的端口号全副调整到20000-30000之间。 http_proxy_port:http代理端口号 https_proxy_port:https代理端口号 bridge_port:桥接端口号 web_username:web治理端用户名 web_password:web治理端明码 web_port:web治理端端口号 将批改好的配置文件及其目录 conf 上传到服务器的 /etc/nps 目录下,如果没有此目录,能够自行创立。2.2 docker装置nps拉取nps服务端docker镜像 docker pull ffdfgdfg/nps运行nps容器,并设置开机自启动 docker run -d --restart=always --name nps --net=host -v /etc/nps/conf:/conf ffdfgdfg/nps此时nps服务端曾经装置实现,能够通过 docker ps 查看是否运行胜利。 ...

April 14, 2023 · 1 min · jiezi

关于内网穿透:使用nps搭建内网穿透并配置泛域名解析

前言nps是什么? nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前反对tcp、udp流量转发,可反对任何tcp、udp下层协定,此外还反对内网http代理、内网socks5代理、p2p等,并带有功能强大的web治理端。 1. 筹备工作一台领有公网IP的云服务器,我这里应用的是腾讯云轻量应用服务器,零碎为CentOS。云服务器中须要装置配置好 Docker。参考地址:菜鸟教程-docker的装置云服务器中装置好宝塔面板,如不须要域名拜访,能够跳过此步骤。参考地址:宝塔面板装置教程nps 服务器端和客户端的程序。下载地址:https://github.com/ehang-io/nps一个已实现备案的域名,用来配置内网穿透泛域名拜访,如不须要域名拜访,能够跳过此步骤。 2. 服务器端搭建nps并配置2.1 配置nps配置文件nps装置时须要加载配置文件,所以须要先创立好配置文件。 下载nps服务端配置文件到本地,抉择与服务器零碎绝对应的版本,我这里抉择 linux_amd64_server.tar.gz ,下载地址:https://github.com/ehang-io/nps/releases 解压下载好的安装包,进入 conf 目录下,对 npc.conf 配置文件进行批改。 首先批改 http_proxy_port 和 https_proxy_port 的端口号为20080和20443。 配置 bridge_port 为 28024 。配置批改 web_username 、 web_password 和 web_port ,其中 web_port 批改为 28080 , web_username 、 web_password 是web治理端的用户名和明码,自行配置即可; web_port 是web治理端的端口号,通过 IP:端口 即可拜访web治理端。其余配置请参照nps服务端配置文档并依据须要自行配置。参考地址:nps服务端配置文件注:这里为了避免与其余已装置的环境抵触,将所有的端口号全副调整到20000-30000之间。 http_proxy_port:http代理端口号 https_proxy_port:https代理端口号 bridge_port:桥接端口号 web_username:web治理端用户名 web_password:web治理端明码 web_port:web治理端端口号 将批改好的配置文件及其目录 conf 上传到服务器的 /etc/nps 目录下,如果没有此目录,能够自行创立。2.2 docker装置nps拉取nps服务端docker镜像 docker pull ffdfgdfg/nps运行nps容器,并设置开机自启动 docker run -d --restart=always --name nps --net=host -v /etc/nps/conf:/conf ffdfgdfg/nps此时nps服务端曾经装置实现,能够通过 docker ps 查看是否运行胜利。 ...

January 20, 2023 · 1 min · jiezi

关于内网穿透:分享一个ubuntu安装神卓互联实现内网穿透的教程

目前国内内网穿透企业级的服务商有花生壳和神卓互联,我接触过很多公司在用,花生壳的穿透技术是PHTunnel ,神卓互联用的是Wangooe Tunnel技术,都是利用于企业级的,这里就介绍神卓互联内网穿透在ubuntu零碎上的装置教程PS:这里以Ubuntu 18.04为例,其它版本办法相似1、登录Ubuntu操作系统 关上Linux终端,输出sudo su进入root账户权限,而后输出apt-get updatesudo suapt-get update2、装置运行环境装置C++运行环境apt-get install g++急躁期待装置实现到此运行环境装置实现 3、下载和装置神卓互联客户端 创立一个目录:mkdir /usr/local/shenzhuocd /usr/local/shenzhuo复制Linux零碎x86_64下载地址wget http://neiwangchuantou.oss-cn...如您是ARM等其它Linux架构,点击查问相应的客户端版本>> 给运行权限赋值chmod +x client启动神卓互联客户端: 参数里带上本人的账号和明码 例如: 18800000000 明码:123456./client 18800000000 123456(再次阐明18800000000是账号,不是参数,请替换为本人的账号)到此神卓互联客户端曾经装置和运行胜利,如果是首次应用,返回官网,登录控制台增加映射规定4、注册零碎服务和开机自启动第一步:编写脚本 vi /etc/systemd/system/shenzhuo.service复制粘贴以下内容:(留神)账号更换为本人账号密码。 [Unit]Description=shenzhuohulian ServiceAfter=network.target[Service]Type=simpleWorkingDirectory=/usr/local/shenzhuoExecStart=/usr/local/shenzhuo/client 18800000000 123456ExecStop=/bin/kill -2Restart=alwaysStartLimitBurst=0[Install]WantedBy=multi-user.target使配置文件失效 chmod +x /etc/systemd/system/shenzhuo.servicesystemctl daemon-reloadsystemctl restart shenzhuosystemctl enable shenzhuo服务配置已胜利。 附:零碎服务相干命令 查看服务运行状态 systemctl status shenzhuo进行服务 systemctl stop shenzhuo重启服务 systemctl restart shenzhuo

April 5, 2022 · 1 min · jiezi

关于内网穿透:仿神卓互联实现一个简单的内网穿透一

目前企业级支流的穿透技术是PHTunnel和Wangooe Tunnel技术 目前国内内网穿透企业级的服务商有花生壳和神卓互联,我接触过很多公司在用,花生壳的穿透技术是PHTunnel ,神卓互联用的是Wangooe Tunnel技术,都是利用于企业级的,尽管我自己的程度还达不大企业级的程度,也不会进步程序在大量并发连贯中只有大量沉闷的状况下的零碎CPU利用率,零拷贝,TCP连接池,内存池,Reactor等技术,然而本人想试一下从头开始写一个仿神卓互联内网穿透的我的项目练练手,尽管网上有开源的FRP,毕竟是开源Go语言写的,性能上不适宜商用,于是本人开始写,只是简略的demo,本人测试能够,置信我会越来越弱小。看一下我设计的拓扑图须要云端有一台服务器,客户端有一个对接转发的客户端,用来转发用户发过来的申请,而后转发给应用服务器,应用服务器再将后果返回给用户为了让公网能拜访子网服务,须要应用一台公网服务器做代理服务器proxyServer(这里的代理是集体叫法),假如某一client须要拜访server(在子网subnet外面部署的服务),然而client不能间接与server连贯。然而client能连贯位于公网的proxyServer,之后如果proxyServer能将client的音讯传给server,再将server的数据返回给client的话,在client看来,就相当于拜访的服务就是proxyServer提供的,所以能够认为该办法可认为对应用层是通明的。 以上是假如proxyServer实现了client与server的数据转发之后,client认为本人拜访了server。然而,因为server在子网,所以proxyServer是不能间接向server发动连贯的。同时,server次要是接管申请,而不是被动发动连贯,所以server也不会被动去连贯proxyServer。这样,server和proxyServer是不会间接连贯的,两个都是服务,都想他人来连贯,而不是被动去连贯他人。为了缓解难堪,就要再来一个代理客户端proxyClient,让他去被动连贯proxyServer和server,而后转发他们之间的音讯。这里将proxyServer和proxyClient看作代理proxy,其次要作用是在传输层转发client和server的信息。proxy只负责转发音讯,至于信息的含意是什么,proxy无所不知。所以说proxy只工作在传输层,对下层应用什么信息,传输的内容是什么齐全不晓得。而client发送给proxyServer信息之后,proxyServer返回的信息与client间接拜访server返回的信息是统一的,client认为proxySercer提供了服务,把他看成server,他对于传输层数据通过什么解决齐全不晓得,所以能够说该办法对应用层是通明的。对proxyServer和proxyClient,二者协同共同完成以上的工作,缺一不可。实现思路通过以上剖析可知,次要指标是实现proxy,而proxy由proxyServer和proxyClient组成,所以这里将须要两个对象。同时,proxy次要是实现传输层数据转发,在具体编程实现时,实际上转发的是两个socket之间的数据。为了方便管理socket之间的关联关系,即应该将以后socket的数据转发给哪个socket,这里将定义一个转发器节点TranslatorNode类,用于存储源socket和目标socket,当以后socket是这个转发器节点的源/目标socket是,只须要将数据转发给目标/源socket就行了。 在proxyClient和proxyServer的性能中,有一些雷同的性能,如转发数据等,也有一些相似的属性,如TranslatorNode对象等。为此,定义一个NetProxy类,用于实现这些独特的局部,再让proxyClient和proxyServer继承他就能够不必到处复制代码了。思考具体实现时,proxyClient和proxyServer之间首先要建设通信,如果proxyServer转发多个client的数据时,都用同一个proxyClient与本人建设的连贯(socket),那proxyClient从server那里获取的数据都会再通过这个连贯返回,这个时候,有很多个client等着拿数据,以后返回的数据到底给谁呢,一种方法就是在转发的数据之前加上一些管制信息,管制信息指明这个数据给谁。然而这会存在一个问题,如果承受数据的buffer比拟大,某一次返回的数据可能是转给两个client的,后果混在一起了,这就会导致转发谬误的音讯给client(未实践证明,集体了解)。而且管制信息的治理也不太不便。为了保障传输数据的污浊,就是proxy不在转发的数据之上再增加额定的信息,这里采纳另外一种办法:为每一个client建设一个专门的连贯,但凡client的数据都通过为他建设的连贯转发给proxyClient,proxyClient发到这个连贯的数据都返回给对应的client。这样治理起来就比拟不便了。当有一个client连贯到proxyServer时,proxyServer和proxyClient要建设一条新的连贯,然而proxyServer又不能被动建设连贯,因而由proxyClient建设,为了让proxyClient晓得什么时候该建设连贯,就须要proxyClient与proxyServer有一条专门用来通信的连贯proxy_communication_conn。 留神到就proxyServer而言,他并不知道连贯到本人的到底是client还是proxyClient,所以这里将定义一些指令,用于指明proxyClient的身份,阐明本人是proxyClient。在proxyClient连贯到proxyServer之后,就须要发送特定音讯,这就要求proxyServer和proxyClient约定好了什么音讯代表什么含意。这里将用一个指令Command类来定义具体的指令,且指令不可被批改,指令尽可能为client不可能发送的音讯,不然proxyServer会误把client当成proxyClient。 总结一下,须要实现TranslatorNode,Command,NetProxy,NetProxyServer(即proxyserver),NetProxyClient(即proxyClient),NetProxy。上面将一一介绍实现细节。NetProxyServer和NetProxyClient用来实现proxyServer和proxyClient的性能,他们继承自NetProxy,然而NetProxy具体要实现哪些性能,须要先剖析了NetProxyClient和NetProxyServer之后,总结其独特局部能力失去,所以这里先这两个类作介绍。这里通过一个client拜访server的过程阐明proxyServer和proxyClient的性能。 为了让proxyServer和proxyClient互通音讯,应该先建设proxy_communication_conn,所以在proxyClient启动之后,应先去连贯proxyServer,并跟他阐明这个连贯是用来通信的,所以两者约定一个通信连贯指令,当proxyServer接管到一个连贯之后,如果这个连贯发送了这个指令给本人,那就把这个连贯标识为proxy_communication_conn,当然,proxyClient发送这条指令所用的连贯也标识为proxy_communication_conn,当这个连贯收到音讯时,须要解析其含意,而其余连贯则只需转发音讯。NetProxy能够定义一个变量proxy_communication_conn,这样在继承当前NetProxyClient和NetProxyServer不必反复定义这个变量。 在client连贯到proxyServer之后,发送音讯,proxyServer收到音讯,判断不是与proxyClient约定的指令,就看下这个连贯有没有对应的转发连贯。那怎么晓得是否存在呢?这里须要用一个translator_node_pool来存储,他是一个列表,元素为TranslatorNode,每一个TranslatorNode有两个连贯,示意从一个连贯收到的音讯要发送到另一个连贯,这样就实现了连贯之间的关联关系。当然,client可能在proxyClient跟本人建设连贯之前曾经给本人发送音讯,这个时候并不知道音讯要发给谁,间接丢掉又太间接了,所以思考在TranslatorNode外面减少一个列表元素,用来存储关联连贯之前client发送过去的音讯。为了建设这个关联连贯,那就要proxyClient被动跟本人再创立一个连贯,而后再将这个连贯关联到client的连贯。为了辨认出是proxyClient建设的用来关联的连贯,二者须要约定一个指令,用来表明以后连贯是proxyClient被动连贯的,须要关联到client的连贯。 proxyClient也须要一个translator_node_pool,用来转发与client关联的连贯与server的连贯之间的音讯。为了简略治理,在proxyServer告诉本人增加一个跟client连贯关联的连贯之后,与proxyServer建设连贯并发送指定指令,而后还须要建设一个到server的连贯,再用TranslatorNode将这两个连贯关联,之后一个连贯接管到音讯之后,就晓得应该把音讯转发到哪里了。 同样,能够在NetProxy定义一个translator_node_pool,同时能够定义一个Command类,因为proxyClient和proxyServer都通过他来获取大家约定的指令。另外,转发音讯也是他们都须要实现的办法,也能够写到NetProxy外面。思考到断开连接时执行的操作也基本一致,能够也将该办法退出进去。 还要留神的一点是接管音讯时设置的buffersize,如果过大则会占用过多内存,然而设置过小的话,在下载大文件的时候,下载速度间接受到buffersize的限度。为此,可思考动静调整buffersize,对TranslatorNode增加一个buffersize属性,用于批示下次的buffersize应该要设多大。为了防止recv音讯时阻塞,能够联合select实现非阻塞接管音讯。

March 30, 2022 · 1 min · jiezi

关于内网穿透:ngrok-内网穿透工具使用远程办公-私活利器

1、下载:https://ngrok.com/download 2、注册账号 3、下载后解压,放到目录/usr/local/bin 4、增加环境变量 vi ~/.bash_profileiexport PATH=$PATH:/usr/local/bin/ngrok:wqsource ~/.bash_profile5、增加本地token【token在集体核心外面会主动生成一个】ngrok authtoken xxxxx 6、代理本地端口【比方本地起的服务是8080端口】ngrok http 8080 7、启动胜利后会生成一个外网地址,

February 17, 2022 · 1 min · jiezi

关于内网穿透:FRP-内网穿透反向代理

frp 是一个专一于内网穿透的高性能的反向代理利用,反对 TCP、UDP、HTTP、HTTPS 等多种协定。能够将内网服务以平安、便捷的形式通过具备公网 IP 节点的直达裸露到公网。 本文将以裸露内网 Web 服务为例,实际 frp 的装置部署。更多利用场景,可见 frp 示例。 装置frp 次要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具备公网 IP 的机器上,客户端通常部署在须要穿透的内网服务所在的机器上。 能够在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件。 本文公网、内网机器都是 Linux x86_64,所以抉择了 frp_0.39.0_linux_amd64.tar.gz。解压: $ tar xzvf frp_0.39.0_linux_amd64.tar.gzfrp_0.39.0_linux_amd64/frp_0.39.0_linux_amd64/frpsfrp_0.39.0_linux_amd64/frps_full.inifrp_0.39.0_linux_amd64/systemd/frp_0.39.0_linux_amd64/systemd/frpc@.servicefrp_0.39.0_linux_amd64/systemd/frps@.servicefrp_0.39.0_linux_amd64/systemd/frpc.servicefrp_0.39.0_linux_amd64/systemd/frps.servicefrp_0.39.0_linux_amd64/LICENSEfrp_0.39.0_linux_amd64/frpc.inifrp_0.39.0_linux_amd64/frpc_full.inifrp_0.39.0_linux_amd64/frps.inifrp_0.39.0_linux_amd64/frpc公网拷贝 frps 文件进公网机器,假如其 IP 为 x.x.x.x: scp frps* ubuntu@x.x.x.x:批改 frps.ini 文件,设置监听 HTTP 申请端口为 8080: cat <<-EOF > ~/frps.ini[common]bind_port = 7000vhost_http_port = 8080EOF装置 supervisor 进行部署,后盾长期运行: # 装置 supervisorsudo apt install supervisor -y# 增加配置sudo -icat <<-EOF >> /etc/supervisor/supervisord.conf[program:frps]directory=/home/ubuntucommand=/home/ubuntu/frps -c /home/ubuntu/frps.inipriority=999autostart=trueautorestart=truestartsecs=10startretries=3stdout_logfile=/var/log/frps_out.logstdout_logfile_maxbytes=1MBstdout_logfile_backups=10stdout_capture_maxbytes=1MBstderr_logfile=/var/log/frps_err.logstderr_logfile_maxbytes=1MBstderr_logfile_backups=10stderr_capture_maxbytes=1MBenvironment=nocleanup=falseEOFexit# 更新服务sudo supervisorctl update all# 查看服务sudo supervisorctl status all内网拷贝 frpc 文件进内网机器,假如其 IP 为 192.168.1.100: ...

February 14, 2022 · 1 min · jiezi

关于内网穿透:如何随时远程开机并控制电脑

最近不是快过年了嘛,然而因为疫情的起因,大家回家的时候预计都要带好电脑,笔记本还好说,台式机就比拟麻烦了。 趁着当初比拟闲就来水一篇应用 frp 内网穿透来近程 开机 和 管制 电脑,心愿可能帮忙大家在家的时候能近程管制放在出租屋的台式机。 所需的资源VPS (一台领有公网 IP 的电脑,用来开启 FRP 服务)WIFI智能插座(反对近程管制的插座,用来近程开机)次要思路总体思路是要解决两个问题,一个是如何自动开机,还有一个是如何进行近程管制。 近程开机第一个问题就是如何自动开机。实现近程开机的形式有很多种,我这里抉择了比较简单的形式,也不便大家上手。那就是应用 WIFI 智能插座 + BIOS 设置通电开机 的配置。这个组合就能在家通过管制 WIFI 智能插座 的通电状态来管制电脑的开机了。 近程管制近程管制的形式也有很多,市面上也有很多近程控制软件,然而很多都是免费的,收费的也有,比拟有名的比方像 TeamViewer ,当初连了一段时间就会狐疑你是商业用途,就会断线,不太好用。我这里应用的是 frp 这种计划,frp 是一个专一于内网穿透的高性能的反向代理利用。 近程开机方才说了,咱们实现近程次要是通过 WIFI 智能插座 + BIOS 通电开机设置 的形式实现的。当初就细说一下。 我用的是这款 小米智能插座 ,应用小米的智能插座,次要是我平时也有应用小米的其余智能家居,米家用的也比拟习惯了,市面上也有其余品牌能够抉择。 接下来就是如何 BIOS 上设置开机启动的配置了,因为 BIOS 各家厂商的配置都不尽相同,以我应用的 微星主板 为例,是在 高级 - 电源治理设置 - AC电源掉电再复电的状态,这个选项,咱们只有抉择 【开机】就行了。这样只有 插座一通电,就能自动开机了。 如果还有同学不晓得如何进入 BIOS 的话,我这里再说一下,个别是在按下开机电源按键之后,就始终按 Del 键(有些厂商也可能是其余的键),就会进入到 BIOS 界面了。 到这里设置实现之后,你就能够先试一下,是不是可能通过手机米家管制电脑开机了。 近程管制咱们这里应用的是 frp 的内网穿透计划,这里就须要用到一台领有公网 IP 的 VPS ,次要是用来跑 FRP 的服务端。 ...

January 19, 2022 · 2 min · jiezi

关于内网穿透:三分钟让闲置电脑变云主机

“ 演示如何利用内网穿透工具FRP,实现域名拜访内网Web服务;外网SSH拜访内网主机;图文形容FRP基本原理。” 成果 前提条件有固定公网IP地址的主机(下文命名为public)可拜访公网的内网主机(下文命名为internal)下载安装在public主机和internal主机上别离下载对应零碎的frp程序压缩包。作者的公网主机和内网主机均为CentOS零碎,因而在两台主机上均执行如下命令进行下载安装。(其余零碎的安装包能够通过Github搜寻frp仓库的发布页面进行下载) wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gztar -zxf frp_0.37.0_linux_amd64.tar.gz -C $HOME# 倡议批改解压后的文件夹名称mv $HOME/frp_0.37.0_linux_amd64 $HOME/frp# 建设软连贯不便后续调用执行ln -s $HOME/frp/frpc /usr/local/bin/frpcln -s $HOME/frp/frpc /usr/local/bin/frpc 拜访内网Web服务想要通过浏览器以 http://公网ip:8000 的形式,拜访内网主机_80端口_上的Web服务,仅须要: 在public主机上批改配置文件frps.ini为:[common]bind_port = 7000vhost_http_port = 8000 在internal主机上批改配置文件frpc.ini为:[common]server_addr = x.x.x.xserver_port = 7000[web]type = httplocal_port = 80custom_domains = your_domain 别离在内网主机启动frpc客户端程序,公网主机启动frps服务端程序: # internal主机上frpc -c ./frpc.ini# public主机上frps -c ./frps.ini(留神配置文件中的端口须要保障可拜访,其中x.x.x.x为你的公网主机IP地址) 此时即可通过 _http://公网ip:8000_ 拜访你部署在内网中的Web服务了。 SSH拜访内网在public主机上批改 frps.ini 文件,仅需设置 frp 服务器用户接管客户端连贯的端口: [common]bind_port = 7000在须要被拜访的internal主机上批改 frpc.ini 文件,假如 frps 所在服务器的公网 IP 为 x.x.x.x: [common]server_addr = x.x.x.xserver_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000(SSH 服务通常监听在 22 端口) local\_ip:内网主机须要裸露到公网的服务地址 local\_port:内网主机须要裸露到公网的配置端口 remote\_port:frp 服务端监听的端口 ...

August 6, 2021 · 1 min · jiezi

关于内网穿透:nps-配置内网穿透

要求一台公网服务器若干台内网服务器服务器装置$ wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz$ tar -xvf linux_amd64_server.tar.gz$ ./nps install配置文件目录: /etc/nps命令用法: nps start|stop|restart|uninstall|update or nps-update update启动: $ nps start # 以守护过程启动nps默认配置文件应用了80,443,8080,8024端口: 80与443端口为域名解析模式默认端口8080为web治理拜访端口8024为网桥端口,用于客户端与服务器通信客户端装置$ wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz$ tar -xvf linux_amd64_client.tar.gz启动: $ ./npc -server ip:8024 -vkey "nps后盾生成的客户端的key"

May 30, 2021 · 1 min · jiezi

关于内网穿透:utools插件穿透内网

首先安利个好用的工具工具这个工具的确好用,外面很多插件对开发人员还是很有用。明天就应用utools来实现内网穿透。 插件治理--下载 内网穿透 而后能够点击测试了。毕竟是裸露到外网上所有还是须要审慎

December 24, 2020 · 1 min · jiezi

关于内网穿透

在我国,由于网民众多,运营商无法保证为每一个宽带用户提供全球唯一的公网 IPv4 地址。因此很多用户会发现通过路由器端查看到的 WAN 端 IP 与百度“IP”关键词所得到的 IP 不一致,并且前者的 IP 为一个私有 IP。 而还有一些情况下,公网 IP 比较昂贵,企业虽然本身也持有少量的独立的公网 IP,但是由于成本限制无法为企业内每一台主机都提供一个公网 IP,或者内网并不是所有服务都需要暴露到公网中进行访问,那么企业有可能就会使用 NAT 技术将大量的内网 IP 通过一定规则映射到公网 IP 上。 而最常见的其中一种技术就是 NAPT,也叫“网络端口地址转换”。因为一般一个服务都是通过一个端口来提供,因此通过这种方式可以将特定的服务通过特定的规则开放到少量的公网 IP 上。 国内家庭宽带 常见的就是 100 开头的地址,公司学校的网络也可能如此,这种情况无法通过端口映射 DMZ等方法让内网设备暴露给外网,只能通过内网穿透方式。 什么是NAT在计算机网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防火墙时重写来源 IP 地址或目的 IP 地址的技术。 这种技术被普遍使用在有多台主机但只通过一个公有 IP 地址访问因特网的私有网络中。根据规范,路由器是不能这样工作的,但它的确是一个方便且得到了广泛应用的技术。当然,NAT 也让主机之间的通信变得复杂,导致了通信效率的降低。 NAT 最初发明的一大目的就是解决公网 IP 的 IPv4 地址资源枯竭的问题,所以国内大城市的主流运营商经常会使用这种方法来规避资源枯竭的问题(我国普及 IPV6 可能还需要一定时间),端口 NAT 转换让 IP 地址得到了极大的利用,NAT 的一个特点就是:对外隐藏了真实地址 在一个典型的配置中,一个本地网络使用一个专有网络的指定子网(比如192.168.x.x或10.x.x.x)和连在这个网络上的一个路由器。这个路由器占有这个网络地址空间的一个专有地址(比如192.168.0.1),同时它还通过一个或多个因特网服务提供商提供的公有的IP地址(叫做“过载”NAT)连接到因特网上。当信息由本地网络向因特网传递时,源地址从专有地址转换为公用地址。由路由器跟踪每个连接上的基本数据,主要是目的地址和端口。当有回复返回路由器时,它通过输出阶段记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果有多个公用地址可用,当数据包返回时,TCP或UDP客户机的端口号可以用来分解数据包。 当然它是有一些缺点的,一些需要初始化从外部网络创建的TCP连接和无状态协议(比如UDP)无法实现。除非NAT路由器管理者预先设置了规则,否则送来的数据包将不能到达正确的目的地址。 在一定程度上,NAT 依赖于本地网络上的一台机器来初始化和路由器另一边的主机的任何连接(一般的家居路由器就充当这个角色,路由器会给自己分配一个内网地址,一般是 192.168.1.1),它可以阻止外部网络上的主机的恶意活动。这样就可以阻止网络蠕虫病毒来提高本地系统的可靠性,阻挡恶意浏览来提高本地系统的私密性。很多具有NAT功能的防火墙都是使用这种功能来提供核心保护的。另外,它也为 UDP 的跨局域网的传输提供了方便。 假设我的 PC 机是 192.168.1.100,我的手机是 192.168.1.101,与百度通信的公网 IP 都是 1.1.1.1,但百度服务器无法直接从 IP 判断我访问的设备,这就导致了外网 IP 不能直接地对内网设备发起通信。我们可以先对公网设备发起通讯,对方的回复会通过路由器发给我们,但是公网里的主机无法主动跟我们通讯,比如我们的电脑就不能作为 web 服务器,当用户访问 1.1.1.1 的时候,路由器并不能区分到底访问的是那个设备。 ...

May 29, 2019 · 3 min · jiezi

如何在手机端查看PC端上的Vue项目二外网环境

在《如何在手机端查看PC端上的Vue项目(一)》这篇文章中介绍了如何在同一网络下通过配置Vue项目的host实现在手机端查看Vue项目,但是这种方法毕竟有局限性,如果是台式机就不行了,所以今天介绍一下如何实现手机通过外网也能访问PC端的Vue项目准备工作:如何在手机端查看PC端上的Vue项目(一) 介绍了如何查看本机IP及配置Vue文件花生壳官网 注册账号、下载客户端草料二维码官网 用于将网址转为二维码1、查看本机IP、修改Vue项目中的配置上面的参考文章中已经介绍了如何查看本机IP并配置Vue文件,这里就不在赘述2、注册花生壳、设置内网映射2.1、点击上方花生壳官网链接,并注册账号,下载客户端 2.2、客户端登录后打开如下图所示,点击右下角加号 2.3、选择内网映射 2.4填写配置信息,最后点击保存 应用名称:随意应用类型:因为我们一般都是访问的网页,所以选择HTTP80,你也卡哇伊选择通用外网域名:这是你注册账号后,花生壳免费给你的,因为免费,所以看起来比较乱,想要好记的,你懂,money~~~~往外端口:不用设置,也没法设置,默认80内网主机:就是你电脑的IP,同时你Vue中配置的host也得是这个内网端口:就是你Vue中配置的port,记得别和其他端口号冲突

May 2, 2019 · 1 min · jiezi

【多图】花生壳盒子与 FRP 对比简单评测

首先感谢花生壳赠送的花生壳盒子,简单试用后决定写篇评测,给有需要的用户一份参考意见基本信息开箱收到盒子后,迫不及待的打开准备安装,所以没有拍摄开箱图片。从官网找了一张开箱后,配件如下花生壳盒子主体说明书电源线需要一根网线,建议大家提前购买,不然会和我一样专门跑出去买网线~配置花生壳配置超级简单,下载 花生壳管理 APP,给机器插上网线和电源之后,等盒子上的灯从红色变成白色之后,直接扫描设备即可当设备添加注册成功,APP 会自动提示你 80 端口免费永久开放并赠送 2G 流量盒子体积盒子非常小,在这给大家上两张对比图直观的感受一下到这一步,花生壳盒子就已经安装好了,接下来的配置我们可以在 APP 上完成,也可以打开网页进入花生壳管理后台进行操作 https://b.oray.com使用在注册时,花生壳已经赠送了我们一个免费的域名,现在我本机电脑已经安装好了 SeaFile 网盘服务,所以可以直接把端口从外网映射进内网,通过域名访问即可像我这做的配置,直接访问我的 免费域名:34567 即可穿透到我的内网 192.168.199.208:8000 来访问我的内网服务使用场景通过了解来看,适用于以下使用场景家用 nas80 端口开了,建各种站点评测好了,基本信息说完了,接下来我们来说一说这个盒子的具体信息拿到盒子后呢,基本上给你的服务如下:免费 80 端口免费 2 个内网穿透端口名额免费域名免费流量 2G免费带宽 1M其他的则是收费项目带宽升级 1M/年 费用是 188 元流量 1G 费用是 10 元固定端口,赠送的端口在设备重启后会随机变化,如果需要固定则需要 148 (极品端口)或者 118 (普通端口)一年映射数需要按年购买计划,价格不等与 FRP 对比之前也折腾过 FRP 做内网穿透,相对之下,FRP 优势如下自主控制高端口想开哪些开哪些不限流量但是 FRP 还是有些成本需要考虑进去的服务器服务器带宽域名一个有一定的技术门槛,小白用户不会配置结论花生壳盒子还是比较适合小白用户,一切都可以 APP 管理。比较简单,花费的成本与自建差不了多少。对于专业用户来说,可能不会太适应花生壳盒子的收费项目,基本上选择自建的多一些

December 26, 2018 · 1 min · jiezi

代理本地服务到公网—natapp内网穿透工具

本文属于原创文章,转载请注明–桃源小盼开发一些服务时,想把本地服务映射到公网可访问状态,方便开发调试。适合调试微信小程序,混合型app客户端等本工具免费稳定,也有高级付费版注册下载打开https://natapp.cn购买免费型下载客户端修改客户端权限cd 下载目录chmod a+x natapp普通使用配置本地地址 127.0.0.1配置本地端口 8080复制authtoken运行客户端// 运行客户端,出现online代表已通./natapp -authtoken=复制的authtoken额外配置// 如果使用了webpack,增加配置devServer: { disableHostCheck: true // 绕过主机检查}高级使用-固定域名购买付费服务,多种可选域名服务下增加一条CNAME解析将已备案域名绑定到natapp

December 13, 2018 · 1 min · jiezi

使用Frp内网穿透快速搭建Web应用实践

一、背景笔者最近折腾docker服务比较多,这几天想把在内网中的服务搬到公网当中,但docker对内存要求较高,而云服务高内存的服务器又比较贵,家里虽然有一台旧笔记本内存还可以,但是没有公网IP地址,视乎还是没有办法,就在纠结的时候想起FRP这个内网穿透软件,重新回顾了一下搭建方法,发现搭建步骤较为简单,为了以后有所参考,所以把搭建步骤详细记录了下来。二、操作步骤配置服务端配置客户端检验与测试三、配置服务端FRP分为服务端与客户端,一个服务端可以对应多个客户端,笔者首先需要在服务器中下载并安装FRP3.1 文件选择frp是开源的一个内网穿透软件,github源码以及文档地址如下https://github.com/fatedier/frp在文档当中可以看到编译好的二进制文件,URL地址如下:https://github.com/fatedier/frp/releases在下载地址当中有多个版本,笔者需要选择自己所对应系统的版本,笔者服务器使用的是64位的Centos系统,客户端使用的是mac系统,因此需要下载frp_0.21.0_linux_amd64.tar.gz和frp_0.21.0_darwin_amd64.tar.gz两个压缩包,如下图所示3.2 下载与解压现在需要在服务器中下载对应版本,首先通过ssh登录服务器,参考命令如下ssh root@121.42.11.33登录服务器之后,笔者需要使用wget下载文件,参考命令如下wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz下载之后,需要解压刚才下载的压缩文件,参考命令如下tar -zxvf frp_0.21.0_linux_amd64.tar.gz命令返回结果如下frp_0.21.0_linux_amd64/frp_0.21.0_linux_amd64/frps_full.inifrp_0.21.0_linux_amd64/frps.inifrp_0.21.0_linux_amd64/frpcfrp_0.21.0_linux_amd64/frpc_full.inifrp_0.21.0_linux_amd64/frpsfrp_0.21.0_linux_amd64/LICENSEfrp_0.21.0_linux_amd64/frpc.ini解压之后并进入文件夹查看,参考命令如下cd frp_0.21.0_linux_amd64 && ll返回结果如下-rw-rw-r– 1 root root 12K Aug 12 12:38 LICENSE-rwxrwxr-x 1 root root 7.2M Aug 12 12:34 frpc-rw-rw-r– 1 root root 126 Aug 12 12:38 frpc.ini-rw-rw-r– 1 root root 5.6K Aug 12 12:38 frpc_full.ini-rwxrwxr-x 1 root root 8.6M Aug 12 12:34 frps-rw-rw-r– 1 root root 26 Aug 12 12:38 frps.ini-rw-rw-r– 1 root root 2.4K Aug 12 12:38 frps_full.ini3.3 修改配置在返回结果当中可以看到有多个文件,不过笔者实际上只需要关心frps和frps.ini就可以了查看配置文件参考命令如下cat frps.ini返回结果如下[common]bind_port = 7000在返回结果当中可以看到端口为7000,这个端口便是FRP与客户端通信的端口,因为笔者需要搭建Web服务,所以需要在配置文件当中加入http服务的监听端口,参考命令如下vim frps.ini修改配置文件,修改后的配置文件内容如下[common]bind_port = 7000vhost_http_port = 88883.4 服务启动修改完成之后,笔者便可启动FRPS服务,参考命令如下./frps -c frps.ini返回结果2018/08/29 23:43:30 [I] [service.go:130] frps tcp listen on 0.0.0.0:70002018/08/29 23:43:30 [I] [service.go:172] http service listen on 0.0.0.0:88882018/08/29 23:43:30 [I] [root.go:207] Start frps success四、配置客户端在配置服务端完成之后,笔者还需要在内网中配置客户端,这个客户端也就是Web服务器,具体操作如下4.1 下载与解压搭建FRP客户端,首先需要在客户端下载FRP压缩文件;笔者mac系统所下载文件及对应的参考命令如下wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_darwin_amd64.tar.gz下载之后同样需要解压文件,参考命令如下tar -zxvf frp_0.21.0_darwin_amd64.tar.gz命令执行之后返回结果如下x frp_0.21.0_darwin_amd64/x frp_0.21.0_darwin_amd64/frps_full.inix frp_0.21.0_darwin_amd64/frps.inix frp_0.21.0_darwin_amd64/frpcx frp_0.21.0_darwin_amd64/frpc_full.inix frp_0.21.0_darwin_amd64/frpsx frp_0.21.0_darwin_amd64/LICENSEx frp_0.21.0_darwin_amd64/frpc.ini进入解压的文件夹中并查看文件列表,参考命令如下cd frp_0.21.0_darwin_amd64 && ll执行后返回的信息如下total 35632-rw-r–r– 1 song staff 11K Aug 12 12:38 LICENSE-rwxr-xr-x 1 song staff 8.0M Aug 12 12:33 frpc-rw-r–r– 1 song staff 126B Aug 12 12:38 frpc.ini-rw-r–r– 1 song staff 5.6K Aug 12 12:38 frpc_full.ini-rwxr-xr-x 1 song staff 9.4M Aug 12 12:33 frps-rw-r–r– 1 song staff 26B Aug 12 12:38 frps.ini-rw-r–r– 1 song staff 2.3K Aug 12 12:38 frps_full.ini4.2 配置服务客户端所需注意的文件有两个,分别是frpc和frpc.ini,先来查看配置文件默认内容是什么,参考命令如下cat frpc.ini返回结果如下[common]server_addr = 127.0.0.1server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000在默认的客户端配置文件当中,配置了一个TCP映射,不过笔者需要搭建Web服务,因此还需要添加一个HTTP映射,并修改对应的服务端IP地址,参考命令如下vim fprc.ini编辑后的结果如下所示[common]server_addr = 121.42.11.33server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 5000[web]type = httplocal_port = 8080custom_domains = test.songboy.net4.3 启动服务修改客户端的配置文件完成之后,笔者需要让客户端的FRP来连接服务端的FRP服务,参考命令如下sudo ./frpc -c frpc.ini执行命令后返回结果如下所示2018/08/30 09:50:07 [I] [proxy_manager.go:300] proxy removed: []2018/08/30 09:50:07 [I] [proxy_manager.go:310] proxy added: [ssh web]2018/08/30 09:50:07 [I] [proxy_manager.go:333] visitor removed: []2018/08/30 09:50:07 [I] [proxy_manager.go:342] visitor added: []2018/08/30 09:50:07 [I] [control.go:246] [55b8b354889e6f44] login to server success, get run id [55b8b354889e6f44], server udp port [0]2018/08/30 09:50:07 [I] [control.go:169] [55b8b354889e6f44] [ssh] start proxy success2018/08/30 09:50:07 [I] [control.go:169] [55b8b354889e6f44] [web] start proxy success在返回结果当中,可以看到ssh服务代理成功,web服务也代理成功,说明笔者的配置无误五、检验与测试前面的操作已经成功的配置了内网穿透服务,现在笔者需要通过ssh登录和web服务来验证服务是否可用,操作步骤如下5.1 测试Web服务测试Web服务是否穿透可以通过访问外网地址,如果能打开内网中的Web服务便说明搭建成功,这里需要搭建一个虚拟主机,参展步骤如下5.1.2 添加虚拟主机要让用户能通过外网访问Web服务,首先需要配置一个域名让其解析到FRP服务器当中,这里为了验证方面,便使用hosts添加记录方式操作,参考命令如下sudo vim /etc/hosts在尾部添加一条host记录,参考内容如下121.42.11.33 test.songboy.net添加的内容当中,IP地址为外网用户能访问到的IP地址,也就是笔者开始搭建FRP服务器的IP地址接下来笔者还需要增加一个虚拟主机,所以需要修改nginx配置文件,在nginx配置文件中添加配置如下server {listen 8080;server_name test.songboy.net;root /Users/song/mycode/work/media-server-api/public;index index.html index.htm index.php;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ .php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}重启nginx ,参考命令如下sudo nginx -s reload5.1.3 访问网站通过浏览器访问,URL地址如下http://test.songboy.net:8888/访问结果如下图所示5.2 测试SSH服务验证SSH的方式是通过ssh连接外网地址,如果登陆到本地服务器便说明ssh服务搭建成功使用ssh登陆,参考命令如下ssh -p 5000 song@test.songboy.net查看当前文件夹,验证是否已经映射成功,参考命令如下ls -l返回结果如下total 0drwx——@ 4 song staff 136 7 19 18:37 Applicationsdrwx——@ 12 song staff 408 8 30 09:47 Desktopdrwx——@ 30 song staff 1020 8 6 08:58 Documentsdrwx——+ 120 song staff 4080 8 29 17:05 Downloadsdrwx——@ 65 song staff 2210 8 18 16:12 Librarydrwx——+ 5 song staff 170 8 17 15:19 Moviesdrwx——+ 5 song staff 170 7 26 11:45 Musicdrwx——+ 4 song staff 136 8 28 19:21 Picturesdrwxr-xr-x+ 4 song staff 136 7 19 16:33 Publicdrwxr-xr-x 8 song staff 272 8 24 14:26 configdrwxr-xr-x 22 song staff 748 8 14 11:00 datadrwxr-xr-x 7 song staff 238 8 24 19:31 dockerFiledrwxr-xr-x 12 song staff 408 8 30 09:28 filesdrwxr-xr-x 7 song staff 238 8 13 09:54 mycodedrwxrwxrwx 20 song staff 680 8 27 16:35 xhprof在返回结果当中,可以看到文件夹与客户端的文件夹一致,便说明ssh服务以及验证成功。作者:汤青松微信:songboy8888日期:2018-08-30 ...

August 30, 2018 · 2 min · jiezi