实现通过云服务器实现frp内网穿透
1.需要一台云服务器
云服务器买腾讯云或者阿里云的都行,价格基本是新用户99一年,别的没用过,估计大差不差
安装你需要的系统,如果没有别的需求,安装CentOS或者是Ubuntu都可以,安装好后能访问系统即可。
之后该云服务器会有一个公网ip,比如123.123.123.123
2.FRP工具下载
Release v0.48.0 · fatedier/frp (github.com)https://github.com/fatedier/frp/releases/tag/v0.48.0
访问上面的链接下载,版本目前已经更新到0.50以上了,但是太新的没用过,所以就用之前版本的了。
注意:下载到Windows下,frpc会被当病毒干掉,要么把杀毒的暂时关了,要么放到服务器里解压
3.云服务器文件配置
下载后解压会得到下面这些文件,
云服务器需要的是frps和frps.ini,
被穿透的需要的是frpc和frpc.ini。
分别复制到云服务或者是被穿透设备的/usr/local/frp的文件夹下(参考的别人大佬的位置),我自己直接放在自己用户的home文件夹下了,放在哪都行
在云服务器端
清空frps.ini,再复制下面内容,
[common] bind_port = 7001 dashboard_port = 7501 token = 12345678 dashboard_user = admin dashboard_pwd = admin
内容都可以改成你想要的,比如token,记得和frpc.ini一致即可,
dashboard_user和dashboard_pwd是远端管理网页,改成自己需要的
4.被穿透设备配置
清空frpc.ini的内容,之后复制下面的内容
[common] server_addr = 公网ip server_port = 7001 token = 12345678 [被穿透设别的名字] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 端口号
server_addr = 公网ip 把这里的内容改成你的云服务器的ip,比如123.123.123.123
[被穿透设别的名字] 如果你有很多被穿透的服务器,避免记不住,就给每个服务器都取个名字
remote_port = 端口号 端口号往大了设置,比如59999
如果你有第二个,或者更多,那就同样的方法把文件复制到相应的设备中,需要修改的是[名字]和端口号。
5.防火墙设置
云服务器和云服务器平台有两道防火墙,最外层是平台设的防火墙,到云服务器本身还有一道防护墙
一、在云服务器环境中,比如腾讯云,通常存在两个层次的管理体系:
1.云平台的服务器管理(例如腾讯云的管理平台):
1.1功能: 提供对云服务器的全局管理,例如创建、删除、启动、停止服务器实例,设置网络、存储、安全组等资源。
1.2作用: 云平台管理工具是用于管理你所购买和配置的所有云资源,它们提供的界面或 API 可以帮助你快速地管理云服务器的生命周期。
1.3安全组: 云平台通常提供安全组来管理网络访问权限,这些安全组规则是在云平台层面实现的,决定了哪些流量可以进出你的云服务器。
2.云服务器本地管理(操作系统级别管理):2.1功能: 指云服务器内部的管理,包括操作系统、应用程序、防火墙(如 ufw)、文件系统和用户权限管理。
2.2作用: 本地管理工具是用于管理和配置服务器内部的细节,比如配置操作系统防火墙、安装软件、配置服务等。你对服务器操作系统的所有控制都是通过这个层次进行的。
二、二者的关系:
1互相补充: 云平台提供更高层次的管理,帮助你管理和保护多个实例之间的网络和访问,而本地管理则允许你对每个实例进行更细粒度的配置。
2安全层次: 云平台的安全组可以看作是外层的防护,决定哪些流量能够到达服务器;而服务器本机的防火墙管理(如 ufw)则是内层防护,控制流量在到达服务器后如何处理。
3.优先级: 如果在云平台的安全组中禁止了某个端口的访问,那么即使你在本地防火墙中开放了该端口,外部流量依然无法访问这个端口。反之,如果云平台的安全组允许了某个端口的访问,但本地防火墙阻止了该端口的流量,流量也无法进入。
5.1 云服务器平台防火墙设置
简而言之,云服务器有两道防火墙包裹,如果想访问里面的数据,就必须两道墙全开,首先登录云服务器平台,打开防火墙
点击添加规则
端口号填写:
frps.ini下的
bind_port = 7001
dashboard_port = 7501还有frpc.ini下的
remote_port = 端口号
如果你有多个,那就填写多个端口号
我的设置就是7001,7501,59999 逗号隔开
5.2 云服务器防火墙设置
之后连接云服务器,输入下面命令
sudo ufw allow 7001,7501,59999/tcp sudo ufw status #查看开启状态
这样之后,两层防火墙就都对我们需要的端口放行了
6.启动frp
云服务器端:
cd 到 frp文件夹 sudo nohup ./frps -c ./frps.ini & #其中&符号表示后台运行 #如果上面的没成功,按照下面的调试 ps aux | grep frps # 查看frpc进程 sudo pkill -f frps # 杀死所有frpc进程 sudo ./frps -c ./frps.ini & #调试用的
被穿透设备端:
cd 到 frp文件夹 sudo nohup ./frpc -c ./frpc.ini & #其中&符号表示后台运行 #如果上面的没成功,按照下面的调试 ps aux | grep frpc # 查看frpc进程 sudo pkill -f frpc # 杀死所有frpc进程 sudo ./frpc -c ./frpc.ini & #调试用的
两个指令基本一致,区别是frpc和frps
7.frp管理界面(可选)
我们开放dashboard_port = 7501的目的就是进入到frp提供的管理界面,访问方式也非常简单,直接浏览器访问
云服务器ip地址:7501
之后输入设置的用户名和密码,默认都是admin。