放寒假回家想用服务器跑代码、想用校园网下文章、甚至还想用服务器打两把游戏。这该怎么办?有的大佬会想,可以在家买一个服务器嘛!如果是这样就打扰了。。。对于我这样的穷人就只能合理利用学校的资源,远程连接学校的服务器了。但是家里网和校园网不在同一局域网这该如何连接?frp内网穿透是一个很好的选择!
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。frp 是一款跨平台的内网穿透工具,支持 Windows、macOS 与 Linux,它需要你有一台拥有固定公网 IP 的电脑,VPS 最好,然后就能愉快的进行内网穿透了。还支持 https,甚至可以用它进行小程序开发。
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
可查看通过代理的所有 http 请求和响应的详细信息。(待开发)
搭建一个完整的frp服务链,我们需要:
VPS一台(也可以是具有公网ip的实体机,博主这边用的是阿里云的服务器,学生价包年也就几十块)
访问设备与被访问设备
一些简单的Linux操作指令基础
frp程序文件,根据自己的要求下载对应版本的程序下载地址
1、将下载好的frp程序文件传入服务器
2、解压文件
tar -zxvf frp_0.34.3_linux_amd64.tar.gz
3、此处可以将frp_0.34.3_linux_amd64文件夹改名为frp,方便操作使用:
mv frp_0.34.3_linux_amd64 frp
4、进入frp目录
cd frp
5、编辑frps.ini文件
vim frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
privilege_token = frp888
dashboard_port = 7700
dashboard_user = admin
dashboard_pwd = admin
6、服务端启动frp
./frps -c ./frps.ini
启动后输入http://[服务器公网ip]:7700
,并输入所设置的账号(admin)和密码(admin)就可以看到以下管理界面:
如果上述界面无法访问进行下面步奏,如果可以跳过下面步骤直接进行客户端的配置。
7、打开服务器防火墙
sudo ufw enable
打开防火墙以后如果发现服务器无法进行运程访问了,那应该是防火墙把22端口关闭了,解决方案:在服务器终端执行命令:
sudo ufw allow 22
8、防火墙打开服务器端端口
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw allow 7700
完成上述操作后,再输入http://[服务器公网ip]:7700
就可以访问上述界面了
服务端frp开机自启动
1、添加systemd配置文件:
vim /usr/lib/systemd/system/frp.service
编辑文件内容如下;
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
其中ExecStart的路径根据自己的路径定义
2、设置frp开机启动:
systemctl daemon-reload
systemctl enable frp
3、启动frp(终止frp把start改为stop即可):
systemctl start frp
4、查看frp是否启动:
ps aux | grep frps
显示如下结果就成功了:
将frp_0.34.3_linux_amd64文件传入到被访问系统的指定目录下中、解压、重命名为frp、切换到frp文件中、编辑frpc.ini文件
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = 123456789
local_ip = 127.0.0.1
# 远程桌面的本地端口号
local_port = 22
启动frp
frpc -c frpc.ini
将frp_0.34.3_window_amd64文件传入到被访问系统的指定目录下中、解压、重命名为frp、切换到frp文件中、编辑frpc.ini文件。
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = 123456789
local_ip = 127.0.0.1
# 远程桌面的本地端口号
local_port = 3389
启动frp
frpc -c frpc.ini
访问端一般都是windows的系统,在访问端电脑打开rp_0.34.3_window_amd64。解压、重命名为frp、切换到frp文件中、编辑frpc.ini文件。
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = rdp
# 只有 sk 一致的用户才能访问到此服务
sk = 123456789
# 绑定本地端口用于访问 远程桌面 服务
bind_addr = 127.0.0.1
bind_port = 1000
访问linux系统:
访问windows端