目录

NAS搭建指南一服务器的选择与搭建

NAS搭建指南一——服务器的选择与搭建

一、服务器的选择

  1. 有自己的本地的公网 IP 的请跳过此篇文章

  2. 按需求选择一个云服务器,目的就是为了进行 frp 的搭建,完成内网穿透

  3. 我选择的是腾讯云服务器,我的配置如下,仅供参考:

    https://i-blog.csdnimg.cn/blog_migrate/7aa797ce8e4fc7162aa1aec6475f5033.png

    4

二、服务器的一些配置

1. 使用 root 权限登录

  1. 根据服务器提供的方式,在网页上登录服务器,进入命令终端

  2. 终端输入 sudo passwd root ,设置 root 密码

  3. 输入 root 的密码,按 Enter

  4. 重复输入 root 的密码,按 Enter

  5. 返回如下信息,即表示 root 密码设置成功

    passwd: password updated successfully

  6. 终端输入 sudo vi /etc/ssh/sshd_config ,打开 sshd_config 配置文件

  7. / 切换搜索模式,输入 Authentication ,并按 Enter 查找下文:

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
  1. i 切换至编辑模式,将 PermitRootLogin 参数修改为 yes ,并删除 # 注释符,修改后如下所示:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
  1. Esc ,输入 :wq ,保存文件并返回
  2. 执行命令 sudo service ssh restart ,重启 ssh 服务

2. PuTTY

  1. PuTTY 是一款Windows的一个免费的 SSH 和 Telnet 客户端,用于远程登录和管理远程计算机
  2. 下载安装过程:略
  3. 根据服务器提供的方式,在网页上登录服务器,进入命令终端(root账户登录)
  4. 服务器中生成 SSH KEY:执行命令 ssh-keygen ,一路回车即可
  5. 生成的 SSH KEY 保存在 /root/.ssh
  6. 安装 putty 工具:执行命令 apt-get install putty-tools
  7. 将 SSH KEY 转化成 PUTTY KEY:执行命令 puttygen ~/.ssh/id_rsa -o ~/.ssh/id.ppk
  8. 修改 authorized_keys:执行命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  9. 执行命令 sudo service ssh restart ,重启 ssh 服务
  10. 下载 id.ppk 到本地 Windows 电脑
  11. Windows 电脑上打开 PuTTY,点击 Connection –> Seconds between keepalives 填写 10
  12. 点击 Data –> Auto-login username 填写 root –>双击 SSH –>双击 Auth –>点击 Credentials –> private key file for authentication 选择刚刚生成的id.ppk
  13. 点击 Session –> Host Name 填写服务器的 IP 地址–> Port 填写 22 –> Connection type 选择 SSH –>其他配置默认即可 –>点击 Save,保存配置(下一次直接选择保存的配置,点击 load,就可以调出前面设置的所有配置)–>点击 Open –>这样就通过 SSH 连接了服务器

3. WinSCP

  1. WinSCP 是一个免费的开源 SFTP、SCP 和 FTP 客户端,用于在 Windows 操作系统上进行文件传输和管理
  2. 下载安装过程:略
  3. Windows 电脑上打开 WinSCP,主机名填写服务器地址,用户名填写 root,密码为上面设置的 root 的密码
  4. 点击保存
  5. 点击登录,即可自由使自己的 Windows 电脑与服务器自由传输文件

4. VSCODE

  1. VSCODE 安装步骤:略

  2. 安装插件 Remote - SSH

  3. 点击侧边栏图标如下

    https://i-blog.csdnimg.cn/blog_migrate/d3b19d552087f97705b461b4fc0a20de.png

  4. 点击侧边栏中的“+”

  5. 输入 ssh root@服务器地址

  6. 根据弹出的提示,即可连接到云服务器,在本地的电脑上,打开并方便的编辑云服务器上的文件

三、frp的搭建

1. Linux 服务器中服务端的搭建

  1. 服务端我选择搭建在云服务器上(因为它有公网 IP)
  2. 在 中下载相应的 FTP 安装包
  3. 我选择的是 frp_0.51.2_linux_amd64.tar.gz 与 frp_0.51.2_windows_amd64.zip
  4. 将 frp_0.51.2_linux_amd64.tar.gz 解压,并通过 WinSCP 上传到服务器中
  5. 通过 PuTTY 登录服务器
  6. 将服务器中的 frp_0.51.2_linux_amd64 移动到 frp 文件夹中:执行命令 mv /root/frp_0.51.2_linux_amd64 /root/frp
  7. 执行命令 rm -rf /root/frp/frpc* ,删除客户端内容
  8. 执行命令 chmod u+x /root/frp/* ,为 FRP 增加可执行权限
  9. 通过 VSCODE 编辑 /root/frp/frps.ini ,内容如下:
[common]
# 常用配置
# 服务端监听地址
bind_addr = 0.0.0.0
# 服务端监听端口:接收 frpc 的连接
bind_port = 7000
# 日志文件地址 & 日志等级 & 日志文件保留天数
log_file = ./frps.log
log_level = info
log_max_days = 7
# 服务端和客户端心跳连接的超时时间
heartbeat_timeout = 90
# 鉴权方式
authentication_method = token
# 鉴权使用的 token 值
token = 123456789
# 最大连接池大小
max_pool_count = 5
# 启用 Dashboard 监听的本地地址
dashboard_addr = 0.0.0.0
# 启用 Dashboard 监听的本地端口
dashboard_port = 7500
# HTTP BasicAuth 用户名
dashboard_user = root
# HTTP BasicAuth 密码
dashboard_pwd = 123456

# 基础配置
# 服务端监听 KCP 协议端口
kcp_bind_port = 0
# 服务端监听 QUIC 协议端口
quic_bind_port = 0
# quic 协议 keepalive 间隔,单位: 秒
quic_keepalive_period = 10
# quic 协议的最大空闲超时时间,单位: 秒
quic_max_idle_timeout = 30
# quic 协议最大并发 stream 数
quic_max_incoming_streams = 100000
# 代理监听地址
# proxy_bind_addr = 0.0.0.0
# 禁用标准输出中的日志颜色
disable_log_color = false
# 服务端返回详细错误信息给客户端
detailed_errors_to_client = true
# tcp_mux 的心跳检查间隔时间
tcp_mux_keepalive_interval = 60
# 和客户端底层 TCP 连接的 keepalive 间隔时间,单位秒
tcp_keepalive = 7200
# 用户建立连接后等待客户端响应的超时时间
user_conn_timeout = 10
# 代理 UDP 服务时支持的最大包长度
udp_packet_size = 1500
# TLS 服务端证书文件路径
# tls_cert_file = 
# TLS 服务端密钥文件路径
# tls_key_file = 
# TLS CA 证书路径
# tls_trusted_ca_file = 
# 打洞策略数据的保留时间
nat_hole_analysis_data_reserve_hours = 168

# 权限验证
# 开启心跳消息鉴权
authenticate_heartbeats = false
# 开启建立工作连接的鉴权
authenticate_new_work_conns = false

# 管理配置
# 允许代理绑定的服务端端口
# allow_ports = 1000-2000,2001,3000-4000
# 限制单个客户端最大同时存在的代理数   0 表示没有限制
max_ports_per_client = 0
# 只接受启用了 TLS 的客户端连接
tls_only = false

# Dashboard, 监控
# 是否启用 TLS 模式
dashboard_tls_mode = false
# TLS 证书文件路径
# dashboard_tls_cert_file = 
# TLS 密钥文件路径
# dashboard_tls_key_file = 
# 是否提供 Prometheus 监控接口   需要同时启用了 Dashboard 才会生效
enable_prometheus = false
# 静态资源目录   Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
# asserts_dir = 
# 启动 Go HTTP pprof   用于应用调试
pprof_enable = false

# HTTP & HTTPS
# 为 HTTP 类型代理监听的端口   启用后才支持 HTTP 类型的代理,默认不启用
vhost_http_port = 0
# 为 HTTPS 类型代理监听的端口   启用后才支持 HTTPS 类型的代理,默认不启用
vhost_https_port = 0
# HTTP 类型代理在服务端的 ResponseHeader 超时时间
vhost_http_timeout = 60
# 二级域名后缀
# subdomain_host = 
# 自定义 404 错误页面地址
# custom_404_page = 

# TCPMUX
# 为 TCPMUX 类型代理监听的端口   启用后才支持 TCPMUX 类型的代理,默认不启用
tcpmux_httpconnect_port = 0
# 是否透传 CONNECT 请求   通常在本地服务是 HTTP Proxy 时使用
tcpmux_passthrough = false
  1. 执行命令 ./frps -c ./frps.ini ,启动 FRP 服务端

  2. 登录腾讯云服务器官网–>点击控制台–>点击我的资源中的云服务器–>进入已有实例

  3. 点击安全组–>点击出站规则–>点击编辑规则

  4. 点击入站规则–>点击添加规则

  5. 类型选择自定义–>目标 0.0.0.0/0 –>协议端口填写 TCP:7000,7500 –>策略选择允许–>备注填写 FRP –>点击确定完成 FRP 监控面板端口开放,配置如下所示

    https://i-blog.csdnimg.cn/blog_migrate/027b4306cf4fce42687704356585997d.png

  6. 打开 服务器地址:7500 ,内容如下所示,FRP 服务端配置成功

    https://i-blog.csdnimg.cn/blog_migrate/7fdc1ee9da078621891979d509d60740.png

2. 服务端的 FRP 开机自启动

  1. 通过 VSCODE 创建 /etc/systemd/system/frps.service ,内容如下:
[Unit]
# 服务名称
Description = frp_server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令
ExecStart = /root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy = multi-user.target
  1. 使用 systemd 命令,管理 frps,具体命令如下:
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
  1. 配置 frps 开机自启,具体命令如下:
systemctl enable frps

3. Windows 电脑中客户端的搭建

  1. 解压 Windows 版本 FRP 安装包 frp_0.51.2_windows_amd64.zip
  2. 我将所有解压得到的内容移动到目录 D:\FRP
  3. 打开 CMD
  4. 输入以下命令,删除服务端内容:
cd D:\FRP
rm frps*
  1. 通过 VSCODE,编辑 D:\FRP\frpc.ini ,内容如下:
[common]
# 常用配置
# 服务器 IP 地址
server_addr = xxx.xxx.xxx.xxx
# 连接服务端的端口
server_port = 7000
# 日志文件地址 & 日志等级 & 日志文件保留天数
log_file = ./frpc.log
log_level = info
log_max_days = 7
# tcp_mux 的心跳检查间隔时间,单位:秒
tcp_mux_keepalive_interval = 60
# 向服务端发送心跳包的间隔时间   建议启用 tcp_mux_keepalive_interval,将此值设置为 -1
heartbeat_interval = -1
# 和服务端心跳的超时时间
heartbeat_timeout = 90
# 鉴权方式   需要和服务端一致
authentication_method = token
# 鉴权使用的 token 值   需要和服务端设置一样的值才能鉴权通过
token = 123456789
# 启用 AdminUI 监听的本地地址
admin_addr = 0.0.0.0
# 启用 AdminUI 监听的本地端口
admin_port = 7500
# HTTP BasicAuth 用户名
admin_user = root
# HTTP BasicAuth 密码
admin_pwd = 123456

# 基础配置
# xtcp 打洞所需的 stun 服务器地址   stun.easyvoip.com:3478	
# nat_hole_stun_server = 
# 连接服务端时所绑定的本地 IP
# connect_server_local_ip = 
# 连接服务端的超时时间
dial_server_timeout = 10
# 和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒   负数不启用
dial_server_keepalive = 7200
# 连接服务端使用的代理地址   格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
# http_proxy = 
# 禁用标准输出中的日志颜色
disable_log_color = false
# 连接池大小
pool_count = 0
# 用户名   设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突
# user = Vaciller
# 使用 DNS 服务器地址   默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址
# dns_server = 
# 第一次登陆失败后是否退出
login_fail_exit = true
# 连接服务端的通信协议
protocol = tcp
# 协议 keepalive 间隔,单位: 秒
quic_keepalive_period = 10
# quic 协议的最大空闲超时时间,单位: 秒
quic_max_idle_timeout = 30
# quic 协议最大并发 stream 数
quic_max_incoming_streams = 100000
# 启用 TLS 协议加密连接
tls_enable = tool
# TLS 客户端证书文件路径
# tls_cert_file = 
# TLS 客户端密钥文件路径
# tls_key_file = 
# TLS CA 证书路径
# tls_trusted_ca_file = 
# TLS Server 名称   为空则使用 server_addr
# tls_server_name = 
# TLS 不发送 0x17   当为 true 时,不能端口复用
disable_custom_tls_first_byte = true
# 服务时支持的最大包长度   服务端和客户端的值需要一致
udp_packet_size = 1500
# 指定启用部分代理   当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用
# start = 
# 附加元数据   会传递给服务端插件,提供附加能力
# meta_xxx = 

# 权限验证
# 开启心跳消息鉴权   需要和服务端一致
authenticate_heartbeats = false
# 开启建立工作连接的鉴权   需要和服务端一致
authenticate_new_work_conns = false

# UI
# 静态资源目录   AdminUI 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
# asserts_dir = 
# 启动 Go HTTP pprof   用于应用调试
pprof_enable = false
  1. 在 CMD 中执行命令 ./frpc -c ./frpc.ini ,启动客户端

  2. 打开 Windows IP:7500/ ,内容如下所示,FRP 客户端配置成功

    https://i-blog.csdnimg.cn/blog_migrate/5fc6f5d270edd5290c5be92a94acf92d.png

  3. 具体需要详细进行内网穿透的内容与配置,会在后文中进行详细说明

4. 客户端的 FRP 开机自启动

  1. 通过 VSCODE,编辑 D:\FRP\frp.bat ,内容如下:
@echo off
setlocal

set appName=D:\FRP\frpc.exe

echo "Start %appName% ..."
D:\FRP\frpc.exe -c D:\FRP\frpc.ini

endlocal
Pause
exit
  1. win+r ,输入 gpedit.msc ,打开本地组策略编辑器
  2. 选择用户配置–>双击 Windows 设置–>选择脚本(登录/注销)–>双击登录–>选择添加–>选择浏览–>找到刚刚编辑的 frp.bat –>选择打开–>选择确定–>选择确定
  3. 此时重启 Windows 电脑,FRP 客户端即可开机自启

四、NGINX 的搭建

  1. 打开 PuTTY 登录服务器

  2. 输入 apt-get install nginx ,安装 NGINX

  3. 输入 nginx -v ,查看 NGINX 版本信息

  4. 输入 systemctl status nginx ,查看服务运行状态,运行效果如下

    https://i-blog.csdnimg.cn/blog_migrate/a77b0d8ce28fed9bc11b81978449d53b.png

  5. 浏览器访问服务器地址,会自动跳转到如下页面

    https://i-blog.csdnimg.cn/blog_migrate/9840f69ece7bb331e30c8df8c63550d6.png

  6. 输入 systemctl enable nginx ,使 NGINX 完成开机自启动

  7. 使用命令 systemctl restart nginx ,即可使 NGINX 完成重启

  8. 输入命令 ln -s -d /etc/nginx nginx ,将 NGINX 的配置文件链接到一个容易找到的位置(在你想要进行连接的位置执行)

  9. 具体使用配置在后文中会有详细介绍

五、域名购买注册及备案

  1. 登录腾讯云服务器官网–>搜索“云解析 DNS”–>点击控制台

    https://i-blog.csdnimg.cn/blog_migrate/d158c02a29024aa6eb083ef81c33e919.png

  2. 进入控制台后点击我的域名–>点击添加域名–>

  3. 然后进行

  4. 然后进行

  5. 等待域名备案通过即可