首页 > 系统相关 >云服务器搭建frp+docker+nginx转发到本机Nas以及docker服务

云服务器搭建frp+docker+nginx转发到本机Nas以及docker服务

时间:2023-03-05 22:55:26浏览次数:38  
标签:nginx Nas frp proxy https docker 本机 port

# 云服务器搭建frp+docker+nginx转发到本机Nas以及docker服务

如果觉得样式不好:跳转即可 (md文件复制过来有些样式会不一样)

原文地址:https://www.firstsaofan.top/archives/yun-fu-wu-qi-da-jian-frpdockernginx-zhuan-fa-dao-ben-ji-nas-yi-ji-docker-fu-wu

所有的博客已迁移到新域名,老地址将会在今年6月到期,以后地址都不会变了。长期维护。(www.firstsaofan.top)

### 购买香港服务器搭建prc

野草云:https://www.yecaoyun.com/(推荐链接:https://my.yecaoyun.com/aff.php?aff=2490)(跑路不负责)
我选择的是Ubuntu22

Ubuntu22版本安装docker,根据官方一键安装脚本即可

https://www.runoob.com/docker/ubuntu-docker-install.html

```bash
--官方命令一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
```

 

### 然后基于docker搭建frp

参考博客地址:

https://i007it.com/2022/06/18/Docker%E6%90%AD%E5%BB%BAfrp%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E6%9C%8D%E5%8A%A1%E5%99%A8/


#### 一、搭建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 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
```

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%E6%90%AD%E5%BB%BAfrp%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E6%9C%8D%E5%8A%A1%E5%99%A8/

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

 

标签:nginx,Nas,frp,proxy,https,docker,本机,port
From: https://www.cnblogs.com/firstsaofan/p/17182085.html

相关文章

  • docker 常用命令docker run系列
    基本格式指令:1dockerrun[OPTIONS]IMAGE[COMMAND][ARG…]用法:通过run命令创建一个新的容器(container)常用选项说明-d,--detach:指定容器在后台运行,默认为fal......
  • Docker CLI docker buildx create 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Doc......
  • DotNet 5.0 部署 Docker 注意
    1.添加docker环境参数后会报错      日志显示  只好按照以下注释   2.Dockerfile问题  日志记载        日志显示......
  • ubuntu 中使用 docker 搭建 trilium 服务
     ubuntu中安装docker:InstallDockerEngineonUbuntu 查看dockerhub中zadam/trilium最新版本:https://hub.docker.com/r/zadam/trilium/tags知道版本号以......
  • 72-云原生监控-Prometheus实现Docker监控
    Prometheus架构https://github.com/prometheus/prometheuscAdvisor简介cadvisor(ContainerAdvisor)是Google开源的一个容器监控工具,它以守护进程方式运行,用于收集、聚......
  • docker常用命令
    基础命令dockerinfo守护进程的系统资源设置dockersearch   Docker仓库的查询dockerpullDocker仓库的下载dockerimages Docker......
  • x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建
    [toc]因为国产化的普及,尤其一些证券和银行行业,已经开始走信创的路线,后期也许会接触到国产CPU(arm平台,比如华为的鲲鹏处理器)自己买arm平台的CPU,这个成本着实吃不消,......
  • Docker安装
    Linux版本:需要CentOS7Docker安装一、基础环境配置1.wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo2.wget-O/etc/yum......
  • docker存储目录
    1目录结构docker存储目录是/var/lib/docker。2image目录image/overlay2/distribution:从远端拉到本地的镜像相关元数据image/overlay2/imagedb:镜像数据库image/o......
  • 判断本机ip地址是否是公网ip
    打开网页  https://www.ip138.com/如果ip地址是10或者100开头,肯定不是公网ip如果后面的地址城市显示的不是所在的真实城市,那99%不是公网ip如果最后运营商不是联通或者......