利用frp进行内网穿透

利用frp软件做反向代理来实现内网穿透,这个方案是需要你有一台带公网IP的云服务器的,优点就是完全可控,自己想配置多少个端口的穿透都可以,速度跟你的云服务器带宽有关。

如何安装配置frp:

  • frp分为frps(server)和frpc(client)两个包 ,其中前者安装到我们的云服务器上,后者安装在需要被外网访问到的各个设备上
  • https://github.com/fatedier/frp/releases下载适合你服务器系统的frp软件,我这里是用的是腾讯云64位Ubuntu20.04所以选择frp_0.37.0_linux_amd64.tar.gz,下好之后解压:tar -zxvf frp_0.34.3_linux_amd64.tar.gz
  • 我们需要编辑的文件是frps.ini :内容改为:
    [common]
    bind_port = 7000 # frp服务的端口号,可以自己定
    dashboard_port = 7500 # frp的web界面的端口号
    dashboard_user = user # web界面的登陆账户,自己修改
    dashboard_pwd = pass # web界面的登陆密码,自己修改
    authentication_method = token
    token = xxxxx # frp客户端连接时的密码,自己修改
    
  • 保存配置后,使用该命令启动:./frps -c ./frps.ini
  • 在浏览器输入 [云服务器的公网ip]:7500 即可访问到 frp的web管理界面。
  • 注意,可能需要去云服务器控制台配置安全组规则 开放以上涉及到的端口,否则无法访问。

配置需要被外网访问到的设备

  • 下载相应版本的frpc软件包(跟刚刚一样的):https://github.com/fatedier/frp/releases,这里选amd64的,下好之后解压到一个临时文件夹。
  • 修改frpc.ini配置文件,内容如下:
   [common]
   server_addr = xx.xx.xx.xx # 你的云服务器的公网ip
   authentication_method = token
   token = xxxxx # 刚刚配置的frp连接密码 
   server_port = 7000 # 刚刚配置的frp服务端口
 ​
   [Fusion-ssh]
   type = tcp
   local_ip = 127.0.0.1
   local_port = 22
   remote_port = 20022
 ​
   [Fusion-rdp]
   type = tcp
   local_ip = 127.0.0.1
   local_port = 3389
   remote_port = 23389
  • 通过上面的脚本就可以把对于云服务器特定端口的访问给重定向到本地服务器的某个端口了,简单地讲就是:假如我用SSH客户端访问 [云服务器ip]:20022,就可以经过反向代理直接访问到[本地的训练服务器ip]:22;同理需要连接远程桌面的话,只需要访问[云服务器ip]:23389就可以了。
当然你也可以修改脚本添加更多映射~
  • 添加开机自动启动的脚本,新建一个文件内容如下:

文件名/etc/systemd/system/frpc.service,注意修改其中的路径:

 [Fusion]
 Description=Frp Server Daemon
 After=syslog.target network.target
 Wants=network.target
 ​
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/frp/frpc -c /usr/local/bin/frp/frpc.ini # 修改为你的frp实际安装目录
 ExecStop=/usr/bin/killall frpc
 #启动失败1分钟后再次启动
 RestartSec=1min
 KillMode=control-group
 #重启控制:总是重启
 Restart=always
 ​
 [Install]
 WantedBy=multi-user.target
  • 然后执行以下命令启用脚本:

    sudo systemctl enable frpc.service
    sudo systemctl start frpc.service

  • 通过下面的命令查看服务状态,如果是running的话就说明可以了:

    sudo systemctl status frpc.service

这里顺便提一下,按照习惯一般把上面的frp软件解压防止在/usr/local/bin目录下。Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
  • /usr:系统级的目录,可以理解为C:/Windows/
  • /usr/lib:可以理解为C:/Windows/System32
  • /usr/local:用户级的程序目录,可以理解为C:/Progrem Files/,用户自己编译的软件默认会安装到这个目录下
  • /opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用
  • 源码放哪里?
    • /usr/src:系统级的源码目录
    • /usr/local/src:用户级的源码目录。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值