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

一、服务器的选择

  1. 有自己的本地的公网 IP 的请跳过此篇文章
  2. 按需求选择一个云服务器,目的就是为了进行 frp 的搭建,完成内网穿透
  3. 我选择的是腾讯云服务器,我的配置如下,仅供参考:
    在这里插入图片描述
    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. PuTTY 官网地址
  3. 下载安装过程:略
  4. 根据服务器提供的方式,在网页上登录服务器,进入命令终端(root账户登录)
  5. 服务器中生成 SSH KEY:执行命令ssh-keygen,一路回车即可
  6. 生成的 SSH KEY 保存在 /root/.ssh
  7. 安装 putty 工具:执行命令apt-get install putty-tools
  8. 将 SSH KEY 转化成 PUTTY KEY:执行命令puttygen ~/.ssh/id_rsa -o ~/.ssh/id.ppk
  9. 修改 authorized_keys:执行命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  10. 执行命令sudo service ssh restart,重启 ssh 服务
  11. 下载 id.ppk 到本地 Windows 电脑
  12. Windows 电脑上打开 PuTTY,点击 Connection --> Seconds between keepalives 填写 10
  13. 点击 Data --> Auto-login username 填写 root -->双击 SSH -->双击 Auth -->点击 Credentials --> private key file for authentication 选择刚刚生成的id.ppk
  14. 点击 Session --> Host Name 填写服务器的 IP 地址–> Port 填写 22 --> Connection type 选择 SSH -->其他配置默认即可 -->点击 Save,保存配置(下一次直接选择保存的配置,点击 load,就可以调出前面设置的所有配置)–>点击 Open -->这样就通过 SSH 连接了服务器

3. WinSCP

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

4. VSCODE

  1. VSCODE 安装步骤:略
  2. 安装插件 Remote - SSH
  3. 点击侧边栏图标如下
    在这里插入图片描述
  4. 点击侧边栏中的“+”
  5. 输入ssh root@服务器地址
  6. 根据弹出的提示,即可连接到云服务器,在本地的电脑上,打开并方便的编辑云服务器上的文件

三、frp的搭建

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

  1. FRP 官网地址
  2. FRP 的安装及使用文档
  3. FRP 的 GitHub 地址
  4. 服务端我选择搭建在云服务器上(因为它有公网 IP)
  5. 在 GitHub 的下载地址中下载相应的 FTP 安装包
  6. 我选择的是 frp_0.51.2_linux_amd64.tar.gz 与 frp_0.51.2_windows_amd64.zip
  7. 将 frp_0.51.2_linux_amd64.tar.gz 解压,并通过 WinSCP 上传到服务器中
  8. 通过 PuTTY 登录服务器
  9. 将服务器中的 frp_0.51.2_linux_amd64 移动到 frp 文件夹中:执行命令mv /root/frp_0.51.2_linux_amd64 /root/frp
  10. 执行命令rm -rf /root/frp/frpc*,删除客户端内容
  11. 执行命令chmod u+x /root/frp/*,为 FRP 增加可执行权限
  12. 通过 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 监控面板端口开放,配置如下所示
    在这里插入图片描述

  6. 打开服务器地址:7500,内容如下所示,FRP 服务端配置成功
    在这里插入图片描述

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 客户端配置成功
    在这里插入图片描述
  3. 具体需要详细进行内网穿透的内容与配置,会在后文中进行详细说明

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

  1. 通过 VSCODE,编辑D:\FRP\frp.bat,内容如下:
@echo off
setlocalset appName=D:\FRP\frpc.exeecho "Start %appName% ..."
D:\FRP\frpc.exe -c D:\FRP\frpc.iniendlocal
Pause
exit
  1. win+r,输入gpedit.msc,打开本地组策略编辑器
  2. 选择用户配置–>双击 Windows 设置–>选择脚本(登录/注销)–>双击登录–>选择添加–>选择浏览–>找到刚刚编辑的 frp.bat -->选择打开–>选择确定–>选择确定
  3. 此时重启 Windows 电脑,FRP 客户端即可开机自启

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day9 10-牛客67道剑指offer-JZ66、19、20、75、23、76、8、28、77、78

文章目录 1. JZ66 构建乘积数组暴力解法双向遍历 2. JZ19 正则表达式匹配3. JZ20 表示数值的字符串有限状态机遍历 4. JZ75 字符流中第一个不重复的字符5. JZ23 链表中环的入口结点快慢指针哈希表 6. JZ76 删除链表中重复的结点快慢指针三指针如果只保留一个重复结点 7. JZ8 二…

gitblit-使用

1.登入GitBlit服务器 默认用户和密码: admin/admin 2.创建一个新的版本库 点击图中的“版本库”,然后点击图中“创建版本库” 填写名称和描述,注意名称最后一定要加 .git选择限制查看、克隆和推送勾选“加入README”和“加入.gitignore文件”在图中的1处…

使用IIS服务器部署Flask python Web项目

参考文章 ""D:\Program Files (x86)\Python310\python310.exe"|"D:\Program Files (x86)\Python310\lib\site-packages\wfastcgi.py"" can now be used as a FastCGI script processor参考文章 请求路径填写*,模块选择FastCgiModule&…

一键部署 Umami 统计个人网站访问数据

谈到网站统计,大家第一时间想到的肯定是 Google Analytics。然而,我们都知道 Google Analytics 会收集所有用户的信息,对数据没有任何控制和隐私保护。 Google Analytics 收集的指标实在是太多了,有很多都是不必要的,…

Multi-object navigation in real environments using hybrid policies 论文阅读

论文信息 题目:Multi-object navigation in real environments using hybrid policies 作者:Assem Sadek, Guillaume Bono 来源:CVPR 时间:2023 Abstract 机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。 最近…

优化堆排序(Java 实例代码)

目录 优化堆排序 Java 实例代码 src/runoob/heap/HeapSort.java 文件代码: 优化堆排序 上一节的堆排序,我们开辟了额外的空间进行构造堆和对堆进行排序。这一小节,我们进行优化,使用原地堆排序。 对于一个最大堆,首…

pytest 编写规范

一、pytest 编写规范 1、介绍 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1、简单灵活,容易上手,文档丰富;2、支持参数化,可以细粒度地控制要测试的测试用例;3、能够…

差分升级在物联网水表上的实现与应用(学习)

摘要 当越来越多的物联网水表加入抄表系统后,实现了水表数据的信息化,并且当水表终端需要技术更新时,通过网络方式来升级产品可以高效修复设备面临的问题,减少用户损失,降低维护成本,但同时也对有限的网络…

遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素

一、遍历集合List的五种方法 测试数据 List<String> list new ArrayList<>(); list.add("A");list.add("B");list.add("C");1. 普通for循环 普通for循环&#xff0c;通过索引遍历 for (int i 0; i < list.size(); i) {Syst…

form中表单切换,导致 relus 中的事件无法触发,原因:页面切换不要一直切换DOM,会导致问题,需要都显示出来

修改前&#xff0c;因为重复渲染DOM导致绑定rules失效 修改前代码使用 computed 计算出渲染的DOM&#xff0c;影响rules事件<el-formref"form"inline:model"billDetailCopy":rules"rules"size"small"label-position"right&quo…

NLP语言模型概览

语言模型结构分类 Encoder-Decoder&#xff08;Transformer&#xff09;: Encoder 部分是 Masked Multi-Head Self-Attention&#xff0c;Decoder 部分是 Casual Multi-Head Cross-Attention 和 Casual Multi-Head Self-Attention 兼具。比如T5&#xff0c;BART&#xff0c;MA…

腾讯云轻量服务器和云服务器的CPU处理器有差别吗?

腾讯云轻量应用服务器和CVM云服务器的CPU处理器性能有差别吗&#xff1f;创建轻量应用服务器时不支持指定底层物理服务器的CPU型号&#xff0c;腾讯云将随机分配满足套餐规格的物理CPU型号&#xff0c;通常优先选择较新代次的CPU型号。而云服务器CVM的CPU处理器型号、主频都是有…

JAVA设计模式----原型设计模式

文章目录 一、简介二、实现方式三、原型模式的注意事项浅拷贝与深拷贝浅拷贝深拷贝一、简介 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Protot…

下载程序到西门子PLC

更多关于西门子S7-200PLC内容请查看&#xff1a;西门子200系列PLC学习课程大纲 下载西门子200PLC程序分以下两步&#xff1a; 一.编译程序 1. 如下图1-1所示&#xff0c;使用PPI电缆将PLC和电脑连接上&#xff0c;注意笔记本使用USB转PPI电缆&#xff0c;连接保证给PLC单独供…

Linux(进程间通信详解)

进程间通信&#xff0c;顾名思义&#xff0c;就是进程与进程之间互通信交流&#xff0c;OS保证了各进程之间相互独立&#xff0c;但这不意味着进程与进程之间就互相隔离开&#xff0c;在不少的情况下&#xff0c;进程之间需要相互配合共同完成某项6任务&#xff0c;这就要求各进…

怎样学会单片机

0、学单片机首先要明白&#xff0c;一个单片机啥也干不了&#xff0c;学单片机的目的是学习怎么用单片机驱动外部设备&#xff0c;比如数码管&#xff0c;电机&#xff0c;液晶屏等&#xff0c;这个需要外围电路的配合&#xff0c;所以学习单片机在这个层面上可以等同为学习单片…

JVM:运行时数据区域(白话文)

最近有时间在看一本<深入了解Java虚拟机>的书籍&#xff0c;这本书是一个中国人&#xff0c;名叫周志明的人写的。相比于其他翻译过来的技术书籍&#xff0c;这本书还是挺通俗易懂的。先前有和彬哥在聊&#xff0c;他说如果是自己一个人看的话会很枯燥&#xff0c;很难坚…

双端列表 —— Deque 接口概述,使用ArrayDeque实现队列和双端队列数据结构

Deque接口简介 Deque译为双端队列&#xff0c;在双向都能作为队列来使用&#xff0c;同时可用作栈。Deque接口的方法是对称成比例的。 Deque接口继承Queue接口&#xff0c;因此具有Queue&#xff0c;Collection&#xff0c;Iterable的方法属性。 双端队列的工作原理 在常规队…

前端架构师的能力要求:打造可靠、灵活和可扩展的Web应用

随着互联网技术迅猛发展&#xff0c;现代Web应用程序变得越来越复杂且功能强大。作为一名前端架构师&#xff0c;在这个快节奏且竞争激烈的环境中&#xff0c;你需要具备广泛而深入地技术知识&#xff0c;并且有能力设计、开发和维护高度可靠、灵活和可扩展性强的Web应用。 深入…

jvm里的内存溢出

目录 堆溢出 虚拟机栈和本地方法栈溢出&#xff08;栈溢出很少出现&#xff09; 方法区和运行时常量池溢出 本机内存直接溢出&#xff08;实际中很少出现、了解即可&#xff09; 堆溢出 堆溢出&#xff1a;最常见的是大list&#xff0c;list里面有很多元素 堆溢出该怎么解决…