功能实现
:通过阿里云作为跳板服务器,通过frp实现公网ip远程访问部署到本地内网的web项目
认识FRP
FRP 是 Fast Reverse Proxy 的缩写,一款支持 TCP/UDP 快速反向代理的开源软件,可以很方便的内网穿透。和花生壳
、Ngrok
等不同,FRP
客户端和服务端的控制权都在自己手中,这也意味着你需要准备一台有公网IP 的 VPS 运行服务端程序。
参考文档
下载对应的版本:https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd64.tar.gzgz
解压
sudo tar -zxvf rp_0.34.0_linux_amd64.tar.gz
修改配置文件
#选择文件夹
cd frp_0.34.0_linux_amd64
#frp 的服务器端,一般名为 frps,配置文件是 frps.ini
vim frps.ini
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8000
参数说明
bind_port
:绑定的端口,需要与客户端中 server_port 参数保持一致vhost_http_port
:虚拟主机运行在本机的端口,如果 vps 有服务占用了端口,应当更换dashboard_port
:frp 后台服务页面的端口,如果设置 8000,便可通过 http://yourip:8000 来访问 frps 的后台页面dashboard_user
:frp 后台服务页面的管理员用户名dashboard_pwd
:frp 后台服务页面的管理员密码privilege_token
:自定义值,必须与客户端中的 privilege_token 保持一致启动 frps服务端
┌─[root ~/frp_0.34.0_linux_amd64]
└──── www.ilesterzhou.top # ./frps -c ./frps.ini
2020/09/27 22:58:20 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2020/09/27 22:58:20 [I] [root.go:212] start frps success
加入开机启动
sudo vi /usr/lib/systemd/system/frps.service
# /usr/lib/systemd/system/frps.service
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
WorkingDirectory=/root/frp_0.34.0_linux_amd64 #frp安装目录
ExecStart=/root/frp_0.34.0_linux_amd64/frps -c /root/frp_0.34.0_linux_amd64/frps.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
相关指令
# 刷新服务
sudo systemctl daemon-reload
# 允许开机启动
sudo systemctl enable frps.service
# 运行服务
sudo systemctl start frps.service
# 查看状态
sudo systemctl status frps.service
下载对应版本:https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd64.tar.gz
修改配置文件
#frpc.ini,frp 的客户端,一般名为 frpc,配置文件是 frpc.ini
[common]
# 公网服务器的 IP
server_addr = x.x.x.x
# 公网服务器监听的端口
server_port = 7000
[web]
type = http
local_port = 8080
#域名
custom_domains = www.ilesterzhou.top
参数说明
server_addr
:服务器端的 ipserver_port
:服务器端的端口,即 bind_portprivilege_token
:同服务器端的 privilege_token 保持一致login_fail_exit
:失败时自动重连remote_port
:远程端口,即 ssh 连接树莓派时的端口启动 frpc.ini
root@raspberrypi:~/frp_0.34.0_linux_amd64# ./frpc -c ./frpc.ini
2020/09/27 15:08:19 [I] [service.go:288] [fd65ee6a22a1cb77] login to server success, get run id [fd65ee6a22a1cb77], server udp port [0]
2020/09/27 15:08:19 [I] [proxy_manager.go:144] [fd65ee6a22a1cb77] proxy added: [ssh]
2020/09/27 15:08:20 [I] [control.go:180] [fd65ee6a22a1cb77] [ssh] start proxy success
加入开机启动
sudo vi /etc/systemd/system/frpc.service
# /etc/systemd/system/frpc.service
[Unit]
Description=frpc
After=network.target
[Service]
TimeoutStartSec=30
#客户端frp安装路径
WorkingDirectory=/root/frp_0.34.0_linux_amd64
ExecStart=/root/frp_0.34.0_linux_amd64/frpc -c /root/frp_0.34.0_linux_amd64/frpc.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
服务相关指令
# 刷新服务
sudo systemctl daemon-reload
# 允许开机启动
sudo systemctl enable frpc.service
# 运行服务
sudo systemctl start frpc.service
# 查看状态
sudo systemctl status frpc.service
卸载旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
设置存储库
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加Docker的官方GPG密钥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证秘钥
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装docker引擎
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
测试
#下载镜像
$ sudo docker pull hello-world
#查看已下载的镜像
$ sudo docker images
#运行镜像
$ sudo docker run hello-world
拉取nginx镜像
$ sudo docker pull nginx
查看本地镜像
$ sudo docker images
运行容器
$ sudo docker run --name nginx -p 8080:80 -d id
安装成功
可以通过浏览器输入本机ip:8080
可以直接访问nginx 服务
之前发现一个有趣的网站 mikutap
,发现个有趣的音乐网站,叫做Mikutap,按照自己想要的节奏按住鼠标拖拽,或者点击键盘会有音乐.而且网站图案也会随之变化,音源应该是miku,
演示网站: https://aidn.jp/mikutap/
项目源码:https://github.com/HFIProgramming/mikutap
将项目源码先copy到本机,然后将本地文件拷贝到docker nginx容器的/usr/share/nginx/html 目录下
#我的项目源码位置在本机的/var/www/html下的mikutap文件夹中
# docker cp 本地路径 容器Id或name:容器目录
$ sudo docker cp /var/www/html/mikutap nginx:/usr/share/nginx/html/
然后就可以通过 www.ilesterzhou.top:8000/mikutap 访问到我内网本机上的mikutap 项目
然后就可以开心的玩耍了
#我的项目源码位置在本机的/var/www/html下的mikutap文件夹中
$ sudo docker cp /var/www/html/mikutap nginx:/usr/share/nginx/html/
然后就可以通过 www.ilesterzhou.top:8000/mikutap 访问到我内网本机上的mikutap 项目
[外链图片转存中...(img-AtYIK48k-1612410020829)]
然后就可以开心的玩耍了