数据包准备
变更ssh端口
vim /etc/ssh/sshd_config
##yy p
#将Port 22放开注释,并将22修改为需要的端口
systemctl restart sshd
#ufw添加对应配置
用户创建
It's not recommended to use the root user for daily tasks. You should create a new user and give it sudo permission. For example:
Create a new user
sudo adduser your-username
Enter the password and other information as prompted.
Then add the user to the sudo group:
Add the user to the sudo group
sudo usermod -aG sudo your-username
Now you can test the new user's root permission:
Test the new user's root permission
su - your-username
whoami
sudo ls
安装sz命令
在终端中输入 which sz
,如果没有输出任何信息,说明sz命令尚未安装。
sudo apt-get install lrzsz
ufw using
功能
简化防火墙配置管理 提供基本的防火墙功能,如允许或拒绝某些端口的流量 提供日志记录功能 支持 IPv4 和 IPv6
作用
保护系统免受未经授权的访问 控制入站和出站网络流量 通过定义规则集来管理哪些服务可以被访问
ufw 的安装
sudo apt-get update
sudo apt-get install ufw
ufw 的基本操作命令
启用 ufw:
sudo ufw enable
禁用 UFW:
sudo ufw disable
检查 ufw 状态及其规则:
sudo ufw status
获取详细状态信息:
sudo ufw status verbose
允许指定端口的连接:
sudo ufw allow [port_number]
例如,允许 SSH 连接(默认端口 22):
sudo ufw allow 22
拒绝指定端口的连接:
sudo ufw deny [port_number]
例如,拒绝 HTTP 连接(默认端口 80):
sudo ufw deny 80
删除规则
删除允许的规则:
sudo ufw delete allow [port_number]
删除拒绝的规则:
sudo ufw delete deny [port_number]
管理服务
UFW 允许使用服务名而不是端口号来管理规则。例如:
允许 OpenSSH 服务:
sudo ufw allow OpenSSH
拒绝 HTTP 服务:
sudo ufw deny http
允许和拒绝特定 IP 地址的连接
允许来自特定 IP 地址的连接:
sudo ufw allow from [ip_address]
例如,允许来自 192.168.1.100 的连接:
sudo ufw allow from 192.168.1.100
拒绝来自特定 IP 地址的连接:
sudo ufw deny from [ip_address]
例如,拒绝来自 192.168.1.100 的连接:
sudo ufw deny from 192.168.1.100
日志记录
启用日志记录:
sudo ufw logging on
禁用日志记录:
sudo ufw logging off
设置日志级别(可选值有:off, low, medium, high, full):
sudo ufw logging [level]
例如,将日志级别设置为 medium:
sudo ufw logging medium
重置 UFW
重置 UFW 将删除所有规则并禁用防火墙:
sudo ufw reset
frp设施安置
云服务器
cd /opt/frps
将 frps frps.toml 拷贝到服务端
vim ./frps.toml
[common]
bind_addr = "0.0.0.0"
bind_port = xxxxx
auth.method = "token"
auth.token = "token信息"
# 设置 HTTP 和 HTTPS 端口(可选,与frpc中使用的remote_port对应)
#vhost_http_port = 80
· bind_port需要在ufw中放行
配置frps开机启动
创建 Systemd 服务文件
打开或创建服务文件:
bash
复制代码
sudo vim /etc/systemd/system/frps.service
在文件中添加以下内容:
ini
复制代码
[Unit]
Description=FRP Server Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/frps/frps -c /opt/frps/frps.toml
#StandardOutput=journal
#StandardError=journal
Restart=on-failure
[Install]
WantedBy=multi-user.target
解释:
StandardOutput=journal 和 StandardError=journal:这两行配置会将标准输出和标准错误输出都发送到 systemd 的日志系统,也就是说,你可以通过 journalctl 查看它们。 Restart=on-failure:如果 frps 因为错误停止,它会自动重启。
启动服务
重新加载 systemd 守护进程以识别新服务:
bash
复制代码
sudo systemctl daemon-reload
启用服务(开机自动启动):
bash
复制代码
sudo systemctl enable frps.service
手动启动服务:
bash
复制代码
sudo systemctl start frps.service
检查服务状态:
bash
复制代码
sudo systemctl status frps.service
4. 验证服务是否正常运行
如果服务状态显示为 active (running),说明已成功启动。
可以查看日志确认:
bash
复制代码
sudo journalctl -u frps.service
查看日志
重新启动后,你可以使用以下命令查看 frps 服务的输出日志
journalctl -u frps.service -f
客户服务器
cd /opt/frpc
将 frpc frpc.toml 拷贝到客户端
[common]
server_addr = "服务器ip"
server_port = 服务器中配置的bind_port,用于通信
auth.method = "token"
auth.token = "token信息"
#对于http的处理
[proxies]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = home.xxx.cn
[tcp]
#纯tcp代理
type = tcp
remote_port = 443
local_ip = 127.0.0.1
local_port = 443
#custom_domains = www.xxx.cn域名
# if not empty, frpc will use proxy protocol to transfer connection info to your local service
# v1 or v2 or empty#
#transport.proxy_protocol_version = "v1"
#transport.tls.force = true
#下面不用看,暂仅tcp
#plugin = https2http
# 转换成 http 后,发送到本机的 10000 端口
#plugin_local_addr = 127.0.0.1:8080
# 可能是 frp 的 Bug?这里必须写成 127.0.0.1,稍后解释
#plugin_host_header_rewrite = 127.0.0.1
# 指定代理方式为 frp
#plugin_header_X-From-Where = frp
配置frpc开机启动
bash
复制代码
sudo vim /etc/systemd/system/frpc.service
在文件中添加以下内容:
ini
复制代码
[Unit]
Description=FRP Client Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/home/rdf/Desktop/frpc/frpc -c /home/rdf/Desktop/frpc/frpc.toml
#StandardOutput=journal
#StandardError=journal
Restart=on-failure
[Install]
WantedBy=multi-user.target
解释:
StandardOutput=journal 和 StandardError=journal:这两行配置会将标准输出和标准错误输出都发送到 systemd 的日志系统,也就是说,你可以通过 journalctl 查看它们。 Restart=on-failure:如果 frps 因为错误停止,它会自动重启。
启动服务
重新加载 systemd 守护进程以识别新服务:
bash
复制代码
sudo systemctl daemon-reload
启用服务(开机自动启动):
bash
复制代码
sudo systemctl enable frpc.service
手动启动服务:
bash
复制代码
sudo systemctl start frpc.service
检查服务状态:
bash
复制代码
sudo systemctl status frpc.service
4. 验证服务是否正常运行
如果服务状态显示为 active (running),说明已成功启动。
可以查看日志确认:
bash
复制代码
sudo journalctl -u frps.service
查看日志
重新启动后,你可以使用以下命令查看 frps 服务的输出日志
journalctl -u frps.service -f
配置校验域名解析,准备证书文件, nginx中
server {
listen 443 ssl;
server_name www.xxx.cn;
ssl_certificate /etc/nginx/conf.d/xxx.crt;
ssl_certificate_key /etc/nginx/conf.d/xxx.key;
# Recommended SSL settings
#ssl_protocols TLSv1.2 TLSv1.3;
#ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/react;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
}
这篇博客介绍了如何进行站点基础配置,包括使用ufw防火墙、frp设施安置以及nginx配置。
博客首先介绍了ufw防火墙的功能和作用,它可以简化防火墙配置管理,提供基本的防火墙功能,并支持IPv4和IPv6。然后,博客给出了ufw的安装和基本操作命令,包括启用和禁用ufw、检查ufw状态和规则、允许和拒绝指定端口的连接,以及删除规则等。此部分内容很详细,对ufw的使用有很好的指导作用。
接下来,博客介绍了frp设施的安置步骤。在云服务器上,需要将frps和frps.toml文件拷贝到指定目录,并配置frps.toml文件中的bind_port和auth.token等信息。在客户服务器上,同样需要将frpc和frpc.toml文件拷贝到指定目录,并配置frpc.toml文件中的server_addr、server_port和auth.token等信息。这部分内容对于配置frp设施的过程进行了清晰的说明。
最后,博客提到了在nginx中配置校验域名解析和准备证书文件的步骤,以保证站点的安全性。这部分内容对于使用nginx配置站点的人来说是很有帮助的。
这篇博客的闪光点是对ufw防火墙和frp设施安置过程的详细介绍,对于读者来说是非常有用的。博客的核心理念是通过使用ufw防火墙和frp设施来保护系统免受未经授权的访问,并控制入站和出站网络流量。这是一个非常重要的理念,值得鼓励和支持。
然而,博客中有一些地方可以改进。首先,博客中的代码和命令没有使用代码块的格式进行标记,导致阅读起来不够清晰。建议在博客中使用代码块来展示代码和命令,这样读者可以更容易地理解和复制。
其次,博客中没有提供frp数据包的下载链接,读者需要自行搜索并下载。建议在博客中提供数据包的下载链接,这样读者可以更方便地获取所需的资源。
最后,博客中的一些命令和配置文件的内容没有进行解释,对于不熟悉的读者来说可能会有困惑。建议在博客中提供更详细的解释和说明,以帮助读者更好地理解和使用。
总的来说,这篇博客对于站点基础配置的介绍还是很有帮助的,但可以通过改进代码和命令的展示方式,提供数据包下载链接以及提供更详细的解释来进一步完善。希望作者能继续写出更好的技术博客,为读者提供更多有价值的内容。