欢迎来到好人卡资源网,专注网络技术资源收集,我们不仅是网络资源的搬运工,也生产原创资源。寻找资源请留言

frp内网穿透教程 frp内网穿软件 frp内网穿透工具

linux sky995 来源:网络跳跃 2年前 (2020-07-05) 490次浏览 0个评论

frp内网穿透教程 frp内网穿软件 frp内网穿透工具

内网穿透介绍

互联网上两个不同的主机进行通信首先需要知道对方IP。根据IP协议,只有分配了公网IP的设备才能在互联网上通信和传输数据。而中国人口/设备众多,分配到的IPv4资源又少,因此绝大部分情况是通过路由器/交换机转换公网IP后才上网。

位于路由器/交换机后的设备一般是内网设备,分配的IP地址以192.168/172.16/10.0开头,属于内网IP。要让内网设备对外提供服务,就需要进行内网穿透。

注意:内网穿透和内网渗透仅有一字之差,但两者是完全不同的概念。内网渗透属于安全领域,指的是通过技术手段攻入(企业)内网,进而控制内网设备。

frp介绍

frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。

frp 项目官网是 https://github.com/fatedier/frp,中文官方文档地址是:https://github.com/fatedier/frp/blob/master/README_zh.md。除了安装过程,中文文档对使用过程已经介绍的非常详细,如遇到问题,建议先查看官方文档。

其他内网穿透工具

除了开源的frp,本人所知还有如下内网穿透/远控工具:

  • ngrok:ngrok 也是很知名的内网穿透工具,自从2.x版本不再开源,名气在下降。ngrok官网也提供免费穿透隧道,但国内连接速度较慢。NATAPP、Sunny-Ngrok等工具基于ngrok二次开发而来;
  • ZeroTier:号称零配置的内网穿透工具,提供与企业 SDN 交换机同等的高级网络虚拟化和管理功能,可以跨本地和广域网连接任何设备和程序。然而由于ZeroTier的服务器在国外,国内连接速度经常很感人,需要自行搭建Moon来解决;
  • 花生壳/向日葵:相信大部分折腾过路由器的人都听说过花生壳DDNS,可能也知道向日葵远控软件。花生壳和向日葵是贝锐科技旗下的产品,注册账户后可免费体验内网穿透功能;
  • TeamViewer:TeamViewer是国内外知名的远程控制、远程会议软件,额外提供文件上传下载等实用功能,比QQ远程协助好用一万遍。虽然个人版免费,但是现在TeamViewer商业化道路一去不复往,用起来越来越恶心,本人现在已经很少用;
  • SAKURA FRP:基于frp的免费内网穿透工具,也有收费服务。对于这家的行为,网民褒贬不一。如果你没有自己的服务器,可以尝试一下这家。

个人认为,如果有外网服务器(包括NAT VPS),frp是最好的选择。如果只想远程控制一下电脑,TeamViewer就可以。

下面介绍frp内网穿透教程。

frp内网穿透教程

frp分服务端和客户端,本节分别做介绍。

部署frp服务端

服务端建议部署在国内VPS、国内NAT VPS国外CN2 GIA VPS上,以提供良好的访问体验。

1. 打开 frp下载页面,下载最新版的 frp_0.33.0_linux_amd64.tar.gz,然后上传到服务器(windows上传请参考:Bitvise连接Linux服务器教程,mac系统上传请参考:Mac电脑连接Linux教程),也可以ssh连接到服务器后用wget下载:

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

绝大部分服务器系统都是64位,因此本教程直接让你下载amd64的压缩包。如果你用的树莓派等特殊服务器,请换成相应架构的安装包。

2. 服务器上解压安装包:tar -zxvf frp_0.33.0_linux_amd64.tar.gz

3. 进入解压后的目录:cd frp_0.33.0_linux_amd64,然后用vim/nano等编辑器编辑frps.ini文件(可以下载到本地,编辑好后再上传上去),填入下面的内容:

<span class="pun">[</span><span class="pln">common</span><span class="pun">]</span>
<span class="com"># frp监听的端口,默认是7000,可以改成其他的</span><span class="pln">
bind_port </span><span class="pun">=</span> <span class="lit">7000</span>
<span class="com"># 授权码,请改成更复杂的</span><span class="pln">
token </span><span class="pun">=</span> <span class="lit">12345678</span>

<span class="com"># frp管理后台端口,请按自己需求更改</span><span class="pln">
dashboard_port </span><span class="pun">=</span> <span class="lit">7500</span>
<span class="com"># frp管理后台用户名和密码,请改成自己的</span><span class="pln">
dashboard_user </span><span class="pun">=</span><span class="pln"> admin
dashboard_pwd </span><span class="pun">=</span><span class="pln"> admin
enable_prometheus </span><span class="pun">=</span> <span class="kwd">true</span>

<span class="com"># frp日志配置</span><span class="pln">
log_file </span><span class="pun">=</span> <span class="str">/var/</span><span class="pln">log</span><span class="pun">/</span><span class="pln">frps</span><span class="pun">.</span><span class="pln">log
log_level </span><span class="pun">=</span><span class="pln"> info
log_max_days </span><span class="pun">=</span> <span class="lit">3</span>

4. 设置和启动frp服务:

<span class="pln">mkdir </span><span class="pun">-</span><span class="pln">p </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">frp
cp frps</span><span class="pun">.</span><span class="pln">ini </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">frp
cp frps </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">bin
cp systemd</span><span class="pun">/</span><span class="pln">frps</span><span class="pun">.</span><span class="pln">service </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln">systemd</span><span class="pun">/</span><span class="pln">system</span><span class="pun">/</span><span class="pln">
systemctl enable frps
systemctl start frps</span>

注意:这些命令执行成功的前提是进入了解压后的frp目录下(黑窗口执行过cd frp_0.33.0_linux_amd64命令)

5. 防火墙放行端口:

<span class="com"># 添加监听端口</span><span class="pln">
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">7000</span><span class="pun">/</span><span class="pln">tcp
</span><span class="com"># 添加管理后台端口</span><span class="pln">
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">7500</span><span class="pun">/</span><span class="pln">tcp
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">reload</span>

注意:

1. 如果是ubuntu或者centos 6,请使用ufw/iptables工具放行端口;

2. 7000和7500两个端口记得改成和frps.ini配置的一样

6. 浏览器打开“http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态:

frp内网穿透教程 frp内网穿软件 frp内网穿透工具

frp管理后台

如果用的NAT VPS,端口应改成映射后的公网端口

服务端配置好后,接下来介绍客户端配置。

配置frp客户端

1. 首先还是打开 frp下载页面,下载最新版的客户端。根据客户端平台不同,请按照下面对应关系下载:

2. 解压缩下载的压缩包,进入文件夹内;

3. 编辑frpc.ini,按照自己的需求设置转发。下面是一个示例:

<span class="pl-en"><span class="com"># 服务端配置</span>
<span class="pun">[</span><span class="pln">common</span><span class="pun">]</span></span>
<span class="pl-k"><span class="pln">server_addr</span></span> <span class="pun">=</span> <span class="pun">服务器</span><span class="pln">ip
</span><span class="com"># 请换成设置的服务器端口</span>
<span class="pl-k"><span class="pln">server_port</span></span> <span class="pun">=</span> <span class="lit">7000</span><span class="pln">
token </span><span class="pun">=</span> <span class="lit">12345678</span>

<span class="com"># 配置ssh服务</span>
<span class="pl-en"><span class="pun">[</span><span class="pln">ssh</span><span class="pun">]</span></span>
<span class="pl-k"><span class="pln">type</span></span> <span class="pun">=</span><span class="pln"> tcp
</span><span class="pl-k"><span class="pln">local_ip</span></span> <span class="pun">=</span> <span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span>
<span class="pl-k"><span class="pln">local_port</span></span> <span class="pun">=</span> <span class="lit">22</span>
<span class="pl-k"><span class="pln">remote_port</span></span> <span class="pun">=</span> <span class="pun">自定义的远程服务器端口,例如</span><span class="lit">2222</span>

<span class="com"># 配置http服务,可用于小程序开发、远程调试等</span>
<span class="pun">[</span><span class="pln">web</span><span class="pun">]</span><span class="pln">
type </span><span class="pun">=</span><span class="pln"> http
local_ip </span><span class="pun">=</span> <span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pln">
local_port </span><span class="pun">=</span> <span class="lit">8080</span><span class="pln">
subdomain </span><span class="pun">=</span><span class="pln"> test</span><span class="pun">.</span><span class="pln">hijk</span><span class="pun">.</span><span class="pln">pw
remote_port </span><span class="pun">=</span> <span class="pun">自定义的远程服务器端口,例如</span><span class="lit">8080</span>

注意:

1. 一个服务端可以同时给多个客户端使用

2. [ssh]这样的名称必须全局唯一,即就算有多个客户端,也只能使用一次,其他的可以用[ssh2]、[ssh3]等;

3. 除了type为http/https,端口只能被一个服务使用

4. 如果用的nat vps,remote_port请改成映射后的端口

4. 登录服务器,防火墙放行监听的端口:

<span class="pln">firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">2222</span><span class="pun">/</span><span class="pln">tcp
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">8080</span><span class="pun">/</span><span class="pln">tcp
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">reload</span>

nat vps放行的端口应该是系统内部端口

5. 接下来以windows为例,介绍运行方法:按“win键 + r”(win键是ctrl和alt中间有windows图标的那个按键)-》输入cmd、回车 -》使用cd命令进入解压文件夹,例如 cd Desktop\frp_0.33.0_windows_amd64(切换到其他分区,例如D盘,请使用 cd /d d: 的形式) -》 ./frpc.exe -c frpc.ini

内网的linux机器,可参考服务端的方式部署成服务并设置开机启动

6. 登录frp管理后台,应该可以看到客户端已经连上来了:

frp内网穿透教程 frp内网穿软件 frp内网穿透工具

frp查看客户端连接

总结

frp是一款非常棒的开源、免费的内网穿透工具,对于有vps的网友,建议使用frp部署内网穿透服务,从而远程访问内网的设备和数据。


好人卡资源网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:frp内网穿透教程 frp内网穿软件 frp内网穿透工具
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址