购买香港服务器搭建frp
野草云:https://www.yecaoyun.com/(推荐链接:https://my.yecaoyun.com/aff.php?aff=2490)(跑路不负责)
我选择的是Ubuntu22
Ubuntu22版本安装docker,根据官方一键安装脚本即可
https://www.runoob.com/docker/ubuntu-docker-install.html
--官方命令一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
但是,每次重启系统都要手动开启命令,比较麻烦,因此,将其服务设置为开机自启动。
docker服务设置开机自启动
命令如下:
systemctl enable docker.service
//重启测试 (没权限就加 sudo)
reboot
docker ps
然后基于docker搭建frp
参考博客地址:
https://i007it.com/2022/06/18/Docker搭建frp内网穿透服务器/
一、搭建frp server(服务器端)
云服务器:带Docker的Ubuntu22
1.创建配置文件(frps.ini)
先建个frp的目录,随便放哪里,比如我就放在用户目录(`/home)下:
mkdir frp
可以直接在服务器(Linux)系统中用vi frps.ini
创建配置文件、编辑、保存。
也可以在本地直接创建好了,用FTP工具上传到 /home/frp
目录下。
frps.ini 文件内容如下:(644A82D6-EA46-283D-09C0-8E38D594DD4D 服务端与客户端要一致,建议生成一个guid)
在线生成地址:https://www.iamwawa.cn/guid.html
644A82D6-EA46-283D-09C0-8E38D594DD4D
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = admin
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081
# 身份验证
token = 644A82D6-EA46-283D-09C0-8E38D594DD4D
2.获取镜像
官方地址:https://hub.docker.com/r/snowdreamtech/frps
docker pull snowdreamtech/frps
碰到没有权限的时候,命令前面加上sudo
就行。
我这里配置文件在:/home/frp/frps.ini
docker run --restart=always --network host -d -v /home/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
参数注释
--network host:网络模式host
-v /home/frp/frps.ini:/etc/frp/frps.ini:配置文件映射
--name frps:容器名称,可以随便取
启动后,通过docker ps -a
命令查看容器列表。
创建好后,打开网址:服务器ip:7500 就可以看到frp面板了。(例如:127.0.0.1:7500)
如果出现无法访问的情况,可以在以下网站上查询一下,看服务器端口是否开放:
https://tool.chinaz.com/port
成功界面
二、搭建frp client(客户端)
Nas 添加Frpc套件 用的矿神的 直接打开套件
配置文件内容如下:(如果是windows等其他系统可以自己搜索博客参考)
1.创建配置文件(frpc.ini)
在所有套件设置里面添加
矿神
https://spk7.Imnks.com/
如果群晖系统是7版本以下的
则https://spk.Imnks.com/
搜索frpc下载对应的套件(C代表client客户端 S代表服务端)
配置文件内容如下:
[common]
# server_addr为FRPS服务器IP地址
server_addr = 云服务器ip
# server_port为服务端监听端口,bind_port,与frps.ini中保存一致
server_port = 7000
# 身份验证,与frps.ini中保存一致
token = 644A82D6-EA46-283D-09C0-8E38D594DD4D
[nas]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000
# [nas] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP
# local_port 为目标端口
# remote_port 为远程端口
# 远程桌面Nas,连接需要5000端口
[halo]
type = tcp
local_ip = 127.0.0.1
local_port = 8090
remote_port = 8090
[wiki]
type = tcp
local_ip = 127.0.0.1
local_port = 3000
remote_port = 3000
三:使用docker+nginx 监听80、443端口根据url 转发
docker pull nginx:latest(nginx配置文件有改动)
docker pull nginx:1.23.0
# 2 在主机创建要挂载的文件夹
mkdir -p /data/nginx/{conf,conf.d,html,logs,certs}
# 以下命令是将该文件夹所有的文件和文件夹权限设置成 777
chmod -R 777 /data/
docker run --name nginx -d -p 80:80 \
-p 443:443 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d/:/etc/nginx/conf.d \
-v /data/nginx/html:/etc/nginx/html \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/certs:/etc/nginx/certs \
-v /etc/localtime:/etc/localtime:ro \
nginx
nginx配置文件
server {
listen 80;
listen [::]:80;
server_name 自己的域名; #填写域名
#将所有HTTP请求通过rewrite指令重定向到HTTPS
rewrite ^(.*) https://$server_name$1 permanent;
}
#配置443端口
server {
listen 443 ssl; # 1.1版本后这样写
server_name 自己的域名; #填写域名
ssl_certificate certs/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key certs/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_session_timeout 5m;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_session_cache shared:SSL:1m;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
location / {
proxy_pass http://云服务器ip:8090/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
root html;
index index.html index.htm;
}
location /nas/ {
proxy_pass http://云服务器ip:5000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /wiki/ {
proxy_pass http://云服务器ip:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
#1、查询portainer镜像(可视化管理云服务器的docker的)
命令:docker search portainer
#2、拉取portainer镜像
#命令
docker pull portainer/portainer
#3、安装portainer
docker run -d -p 9000:9000 -l portainer=portainer -v /var/run/docker.sock:/var/run/docker.sock -v /portainer_data:/dataportainer/portainer --name portainer portainer/portainer
#4、登录设置账号密码,选择local进行连接 admin 密 admin
由于野草云默认是没开启防火墙的虽然可以访问但是不够安全,需要把自己需要用到的端口开放并开启防火墙
5000 7000 7500 7080 7081 80 443 8090 9000 3000 端口全部开放然后开启防火墙
ubuntu开放80端口的操作方法:
1.打开终端命令行模式。 netstat -aptn 查看所有开放端口
2.输入以下命令查看已经开启的端口。
sudo ufw status
3.若没开发80端口,则输入以下命令开放。
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 7000
sudo ufw allow 7500
sudo ufw allow 7080
sudo ufw allow 7081
sudo ufw allow 8090
sudo ufw allow 9000
sudo ufw allow 3000
sudo ufw allow 5000
sudo ufw allow 22 //默认防火墙是关闭的 并且所有端口都没有设置 记得开放 不然不能ssh
如果没有开放22端口就开启了防火墙,可以去后台提交售后工单.(不能连接找客服,不要去设置安全组,不然只能重开服务器了,踩过坑。)
4.最后重启一下防火墙即可。
sudo ufw reload #重启防火墙
相关命令:
sudo ufw enable #开启防火墙
sudo ufw disable #关闭防火墙
参考博客:
0.Ubuntu安装docker 利用官方一键安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
参考地址:
https://www.runoob.com/docker/ubuntu-docker-install.html
1.利用服务器搭建Frp
https://i007it.com/2022/06/18/Docker搭建frp内网穿透服务器/
3.docker安装nginx以及配置证书 参考自己的博客
注意事项:博客的nginx版本大约是1.1或者1.2 不要用nginx最新的镜像,挂载的目录不一样,会报错,图简单直接把用nginx 1.20版本即可
https://www.firstsaofan.top/archives/babb59e1-5d52-d2f7-19bc-29a91fe128ac
https://www.firstsaofan.top/archives/d7a39bf7-5996-9d0f-3e45-f487ce5cd1a2