首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,510 阅读
2
推荐31个docker应用,每一个都很实用
1,311 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
931 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
490 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
38
篇与
的结果
2026-01-22
Docker 一键部署 WireGuard VPN,支持可视化管理与监控
🌟 引言随着远程办公、跨地域访问与隐私保护需求的不断增长,VPN(虚拟专用网络) 正在成为个人与企业必备的基础设施之一。而传统的 WireGuard VPN 配置流程对于普通用户而言存在一定门槛,需要大量命令行操作与手动配置。WG-Easy 正是在这种背景下应运而生的高效解决方案,它将 WireGuard 的强大性能与可视化管理相结合,大大降低部署和维护难度。💡 项目简介WG-Easy(WireGuard Easy) 是一个将 WireGuard VPN 核心服务与 Web 可视化管理界面深度集成的开源项目。它通过直观的浏览器操作界面,让用户无需掌握复杂的命令行知识,即可快速完成 VPN 的部署、配置与监控。设计理念:📦 开箱即用:基于 Docker 容器化部署,一条命令即可启动🖱️ 可视化优先:所有操作均可在 Web 界面完成,告别配置文件🚀 性能卓越:基于 WireGuard 协议,提供媲美直连的网络速度🔒 安全可靠:采用现代密码学套件,代码简洁易审计🎯 核心特性WireGuard Easy 提供了一套完整的 VPN 管理功能,主要特性包括:🧩 一体化架构:将 WireGuard 核心 VPN 与 Web 管理界面整合在一起。🚀 快速部署:基于 Docker 容器化,一条命令即可启动完整 VPN 服务。🖥️ 可视化管理面板:客户端创建、编辑、禁用、删除全部图形化完成。📱 二维码一键接入:自动生成配置二维码,便于移动设备一键连接。🔗 一次性分享链接:生成临时配置链接,分享后自动失效,提升安全性📊 实时连接与流量监控:显示每个客户端的在线状态、上传 / 下载流量。🌗 多语言 & 深浅色模式:自动适配浏览器语言,支持暗黑模式。📈Prometheus 监控支持:原生支持 Prometheus,便于接入 Grafana 统一监控体系。🔑 双因素认证(2FA):支持 TOTP 双因素认证,提升账户安全。🔐 继承 WireGuard 的安全模型:公钥认证、现代加密算法,无密码、无证书链复杂度。ℹ️ 环境信息🔍 WireGuard 内核支持检查在部署前,请确认服务器内核已支持 WireGuard:uname -r加载 WireGuard 内核模块:modprobe wireguard验证是否成功:lsmod | grep wireguard说明:Linux Kernel ≥ 5.6 已内置 WireGuardUbuntu 20.04+ / 22.04 LTS 默认支持若加载失败,请检查内核版本或云厂商是否裁剪模块基础环境云服务器(VPS / 轻量云 / 物理机)操作系统:Ubuntu 22.04 LTS(推荐)具有域名 或 公网 IP已安装 Docker / Docker Compose网络与安全组要求UDP 51820(WireGuard 通信端口)TCP 51821(wg-easy Web 管理界面)出口网络允许访问公网(用于 VPN 转发)🔥 配置防火墙规则# Ubuntu/Debian (使用 ufw) sudo ufw allow 51820/udp comment 'WireGuard VPN' sudo ufw allow 51821/tcp comment 'WG-Easy Web UI'⚠️ 若云厂商启用防火墙 / 安全组,务必同步放行端口。📦 部署教程🚀 方式一:Docker 命令行部署(快速上手)1️⃣ 创建网络docker network create \ -d bridge --ipv6 \ --subnet 10.42.42.0/24 \ --subnet fdcc:ad94:bacf:61a3::/64 \ wg2️⃣ 启动容器docker run -d \ --net wg \ -e INSECURE=true \ --name wg-easy \ --ip6 fdcc:ad94:bacf:61a3::2a \ --ip 10.42.42.42 \ -v ~/.wg-easy:/etc/wireguard \ -v /lib/modules:/lib/modules:ro \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add NET_ADMIN \ --cap-add SYS_MODULE \ --sysctl net.ipv4.ip_forward=1 \ --sysctl net.ipv4.conf.all.src_valid_mark=1 \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --sysctl net.ipv6.conf.all.forwarding=1 \ --sysctl net.ipv6.conf.default.forwarding=1 \ --restart unless-stopped \ ghcr.io/wg-easy/wg-easy:153️⃣ 访问 Web 界面访问浏览器 http://服务器IP:51821 即可进入界面。🐳 方式二:Docker Compose 部署(推荐)1️⃣ 安装 Docker Compose# Ubuntu/Debian # sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo apt install -y docker-compose-plugin2️⃣ 创建配置目录mkdir ~/wg-easy/ && mkdir ~/wg-easy/3️⃣ 下载 Docker Compose 文件sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml4️⃣ 修改配置编辑docker-compose.yml文件并取消environment注释INSECURE设置INSECURE为true允许通过非安全http连接访问 Web UI。完整 docker-compose.yml 文件如下:volumes: etc_wireguard: services: wg-easy: volumes: etc_wireguard: services: wg-easy: environment: - INSECURE=true image: ghcr.nju.edu.cn/wg-easy/wg-easy:15 container_name: wg-easy networks: wg: ipv4_address: 10.42.42.42 ipv6_address: fdcc:ad94:bacf:61a3::2a volumes: - etc_wireguard:/etc/wireguard - /lib/modules:/lib/modules:ro ports: - "51820:51820/udp" - "51821:51821/tcp" restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 - net.ipv6.conf.all.disable_ipv6=0 - net.ipv6.conf.all.forwarding=1 - net.ipv6.conf.default.forwarding=1 networks: wg: driver: bridge enable_ipv6: true ipam: driver: default config: - subnet: 10.42.42.0/24 - subnet: fdcc:ad94:bacf:61a3::/645️⃣ 启动服务# 启动容器 docker compose up -d # 查看日志 docker compose logs -f wg-easy # 查看容器状态 docker compose ps访问浏览器 http://服务器IP:51821 即可进入界面。⚙️ 初始配置🔐 创建管理员账号📱 创建客户端配置🔀 配置路由规则(重要)修改客户端配置,添加允许的 IP ,决定哪些流量走 VPN:# 全局代理(所有流量走 VPN) 0.0.0.0/0, ::/0 # 仅访问特定网段(分流模式,推荐) 10.42.42.0/24 # WireGuard 内网 10.7.0.0/22 # 服务器内网 172.17.0.0/24 # docker 192.168.1.0/24 # 家庭网络💡 分流模式的优势:✅ 仅内网流量走 VPN,外网直连✅ 节省 VPN 服务器带宽✅ 访问国内网站速度更快保存后即可通过扫描二维码或下载配置文件连接📊 启用 Prometheus 监控1️⃣ 在 WG-Easy 中启用进入 管理面板 > 通用设置 > Prometheus,启用监控并设置密码。 2️⃣ 配置 Prometheus在 Prometheus 配置文件中添加:以下是一个示例:scrape_configs: - job_name: 'wg-easy' scrape_interval: 30s metrics_path: /metrics/prometheus static_configs: - targets: - '服务器IP:51821' authorization: type: Bearer credentials: '上一步设置的密码'导入 Grafana 仪表盘Grafana Dashboard ID:21733🖥️ 项目界面预览📊 仪表盘💻 客户端连接Windows客户端 iPhone客户端 🎯 适用场景WG-Easy 适用于多种实际应用场景,从个人隐私保护到企业级远程访问,都能提供高效的解决方案:🧑💻 远程办公 / 内网访问安全访问公司内网服务(Git、Jenkins、数据库、K8s 等)。🌍 跨地域统一出口网络多终端统一出口 IP,便于访问特定区域网络资源。🏡 家庭网络远程访问安全访问家中 NAS、路由器、智能家居设备、监控摄像头、内网服务。👥 小型团队 VPN 管理无需专业网络运维即可维护团队 VPN。🧪 测试 / 沙箱 / 运维环境快速搭建临时 VPN,随用随删,配置可追溯。🔗 相关链接📖 官方文档官方网站:https://wg-easy.github.io/wg-easy/latest/GitHub 仓库:https://github.com/wg-easy/wg-easy快速开始:https://wg-easy.github.io/wg-easy/latest/getting-started/部署示例:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/basic-installation/🔧 高级配置Caddy 反向代理:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/caddy/Traefik 反向代理:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/traefik/可选配置项:https://wg-easy.github.io/wg-easy/latest/advanced/config/optional-config/API 接口文档:https://wg-easy.github.io/wg-easy/latest/advanced/api/📱 客户端下载平台下载地址Windowshttps://download.wireguard.com/windows-client/🍎 macOShttps://apps.apple.com/app/wireguard/id1451685025🤖 Androidhttps://play.google.com/store/apps/details?id=com.wireguard.android📱 iOShttps://apps.apple.com/app/wireguard/id1441195209🐧 Linuxsudo apt install wireguard 或各发行版包管理器💬 社区支持问题反馈:https://github.com/wg-easy/wg-easy/issues讨论区:https://github.com/wg-easy/wg-easy/discussions贡献指南:https://wg-easy.github.io/wg-easy/latest/contributing/general/WireGuard vs IPsec vs OpenVPN 核心对比选择 WireGuard,如果你需要:✅ 极致性能:低延迟、高吞吐量的网络体验✅ 移动场景:频繁切换网络(4G/5G ↔ WiFi)✅ 简单部署:快速上手,无需复杂配置✅ 物联网/嵌入式:资源受限的设备🎯 适用场景:个人 VPN、移动办公、物联网、云原生环境选择 IPsec,如果你需要:✅ 企业合规:满足 FIPS、CC 等安全认证要求✅ 站点互联:分支机构与总部的网络互联✅ 原生集成:操作系统内置支持,无需额外客户端✅ 传统设备:需要与老旧设备兼容🎯 适用场景:企业站点互联、合规要求高的场景、金融行业选择 OpenVPN,如果你需要:✅ 最大兼容性:严格的防火墙环境(可伪装 HTTPS)✅ 灵活认证:用户名密码、双因素认证等✅ 成熟生态:丰富的第三方工具和管理系统✅ 细粒度控制:复杂的访问控制和策略路由🎯 适用场景:企业远程访问、严格防火墙环境、需要灵活认证的场景🎉 总结WG-Easy 以其实用性和易用性,将传统 WireGuard VPN 的部署门槛大幅降低,使得 VPN 架构不仅对开发者友好,同时对非专业用户亦极易上手。无论是个人搭建,还是企业内网 VPN 管理,WG-Easy 都能提供简洁、高效、安全的解决方案,是值得推荐的开源 VPN 工具。
2026年01月22日
3 阅读
0 评论
0 点赞
2025-11-20
境外IP天天扫你网站?3步彻底封杀,还不用编译Nginx!
你的服务器是否每天被 /admin、/wp-login.php、/.env 扫描刷屏?这些攻击 90% 来自境外。如果你的业务只服务中国大陆用户,那完全没必要开放全球访问!更重要的是:你不需要编译 Nginx,不需要 MaxMind 账号,甚至不用装额外模块只需利用 亚太网络信息中心(APNIC)公开的官方 IP 数据,配合 Nginx 原生功能,3步实现精准拦截!为什么推荐 APNIC 方案?APNIC 官方方案 ✅ 完全公开免费✅ 原生支持,不需要重新编译Nginx✅ 亚太官方机构发布(数据权威性)✅ 所有 Linux + 任意 Nginx 版本实战:3 步实现“仅限中国大陆访问”📌 本方案适用于:任何 Linux 系统 + 任何来源的 Nginx(官方源、宝塔、LNMP、手动编译等)第一步:获取中国大陆 IP 段(来自 APNIC 官方)APNIC 每天更新各国 IP 分配清单,地址永久免费开放:http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest# 下载到文件 wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest # 直接输出到终端 curl -sSL https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest创建自动转换脚本(保存为 /usr/local/bin/gen-cn-allow.sh):#!/bin/bash # 从 APNIC 官方数据生成 Nginx allow 规则 # 适用于任意 Linux 系统(CentOS/Ubuntu/Debian/Alma/Rocky 等) OUTPUT_DIR="/etc/nginx/conf.d" mkdir -p "$OUTPUT_DIR" echo "正在下载 APNIC 最新数据..." wget -qO- http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest | \ awk -F'|' ' $2 == "CN" && $3 == "ipv4" { prefix = $4; len = 32 - log($5) / log(2); print "allow " prefix "/" len ";"; } $2 == "CN" && $3 == "ipv6" { print "allow " $4 "/" $5 ";"; } ' > /tmp/cn_allow.list # 分离 IPv4 和 IPv6(避免混合导致 Nginx 报错) grep -E 'allow [0-9]+\.' /tmp/cn_allow.list > "$OUTPUT_DIR/china-ipv4.conf" grep -E 'allow [0-9a-fA-F:]+' /tmp/cn_allow.list > "$OUTPUT_DIR/china-ipv6.conf" # 添加注释头 sed -i "1i# Auto-generated from APNIC — $(date)" "$OUTPUT_DIR/china-ipv4.conf" sed -i "1i# Auto-generated from APNIC — $(date)" "$OUTPUT_DIR/china-ipv6.conf" rm -f /tmp/cn_allow.list echo "✅ 中国 IP 白名单已生成:" echo " IPv4: $OUTPUT_DIR/china-ipv4.conf" echo " IPv6: $OUTPUT_DIR/china-ipv6.conf"赋权并运行:chmod +x /usr/local/bin/gen-cn-allow.sh sudo /usr/local/bin/gen-cn-allow.sh🕒 建议每日自动更新(防止新 IP 段遗漏):echo "0 3 * * * root /usr/local/bin/gen-cn-allow.sh >/dev/null 2>&1" | sudo tee /etc/cron.d/update-cn-ip第二步:配置 Nginx 仅放行中国 IP编辑你的站点配置文件(如 /etc/nginx/conf.d/your-site.conf):server { listen 80; listen [::]:80; server_name your-domain.com; # 引入中国 IP 白名单(顺序很重要!) include /etc/nginx/conf.d/china-ipv4.conf; include /etc/nginx/conf.d/china-ipv6.conf; # 可选:放行本地回环(避免自己被拦) allow 127.0.0.1; allow ::1; # 拒绝所有未匹配的请求 deny all; location / { root /var/www/html; index index.html; # 你的其他配置... } }⚠️ 关键规则:Nginx 按顺序匹配 allow/deny,必须先写 allow,再写 deny all!第三步:重载生效 & 验证# 检查语法 nginx -t # 重载配置(平滑生效,不影响在线用户) nginx -s reload # 或 systemctl reload nginx验证方法: 国内手机 4G 访问 → 应正常打开;使用境外代理或 VPS 访问 → 应返回 403 Forbidden;查看日志:tail -f /var/log/nginx/access.log | grep '403'⚠️ 重要注意事项CDN 用户请特别注意!如果你使用了 Cloudflare、阿里云 CDN、腾讯云 CDN 等:用户真实 IP 被隐藏,Nginx 看到的是 CDN 节点 IP(多为境外);直接启用此规则会导致 所有用户被拦截!✅ 解决方案:在 CDN 后台开启 “回源携带真实IP”(如 Cloudflare 的 CF-Connecting-IP);或改用 CDN 自带的地域封禁功能(更简单可靠)。IPv6 支持按需启用若服务器未启用IPv6,可删除listen [::]:80;和china-ipv6.conf引用。性能影响极小中国大陆IP段约6000+条,Nginx 使用高效前缀匹配,实测无明显延迟。写在最后:屏蔽境外访问,不等于“技术复杂”。用官方数据 + Nginx 原生能力,就能构建一道高效、透明、低成本的“数字国境线”。你试过哪种防境外攻击的方法?有没有因为 CDN 导致误拦的经历?欢迎评论区分享!
2025年11月20日
32 阅读
0 评论
0 点赞
2025-11-15
还在手动封 IP?这 3 种 Nginx 动态封禁方案
还在靠 vim 手动加 deny 1.2.3.4 ;,然后 nginx -s reload ?不仅效率低,还容易误操作、漏封、重启抖动……别担心!本文为你带来三种真正 “动态”、无需复杂开发、生产可用的 Nginx 封 IP 方案,全部附带 完整配置 + 一行命令操作,让你的防护能力秒级生效,运维效率直接翻倍!方案一:OpenResty + Redis 毫秒级动态封禁实时生效|无需 reload|支持自动解封1. 安装 OpenResty + Redis# Ubuntu 示例 sudo apt install redis-server -y wget -O - https://openresty.org/package/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openresty-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/openresty-archive-keyring.gpg] http://openresty.org/package/debian $(lsb_release -sc) openresty" | sudo tee /etc/apt/sources.list.d/openresty.list sudo apt update && sudo apt install -y openresty2. 配置 /etc/openresty/nginx.confworker_processes auto; events { worker_connections 1024; } http { server { listen 80; location / { access_by_lua_block { local redis = require "resty.redis" local red = redis:new() red:set_timeout(1000) local ok, err = red:connect("127.0.0.1", 6379) if not ok then return end local ip = ngx.var.remote_addr if red:get("blacklist:" .. ip) ~= ngx.null then ngx.exit(403) end red:close() } proxy_pass http://127.0.0.1:8080; } } }3. 动态封/解 IP(一行命令)# 封 1 小时 redis-cli SETEX blacklist:1.2.3.4 3600 "abuse" # 解封 redis-cli DEL blacklist:1.2.3.4方案二:fail2ban + Nginx 日志 —— 自动分析恶意行为自动封|防爆破|开箱即用1. 安装 fail2bansudo apt install fail2ban -y2. 创建过滤器 /etc/fail2ban/filter.d/nginx-bad.conf[Definition] failregex = ^<HOST>.*"(GET|POST).*" (400|403|444|404) .* ignoreregex =3. 配置 jail /etc/fail2ban/jail.local[nginx-bad] enabled = true port = http,https filter = nginx-bad logpath = /var/log/nginx/access.log maxretry = 5 findtime = 600 bantime = 3600 action = iptables-multiport[name=nginx, port="80,443"]4. 启动sudo systemctl restart fail2ban注:默认用 iptables 封 IP。如坚持只用 Nginx ,请看方案三。方案三:纯 Shell + 文件驱动 —— 最简原生 Nginx 封禁零依赖|只用 Nginx|运维只需写文件核心思想: 维护一个纯文本黑名单文件:/etc/nginx/blacklist.txt(每行一个 IP)用一个 Shell 脚本自动转成 deny 配置并 reload通过 inotifywait 监听文件变化,改完即生效第一步:安装 inotify-tools(监听文件变动)sudo apt install inotify-tools -y第二步:创建黑名单目录和初始文件sudo mkdir -p /etc/nginx/dynamic echo "# 黑名单IP,每行一个,如:1.2.3.4" | sudo tee /etc/nginx/blacklist.txt sudo touch /etc/nginx/dynamic/blacklist.conf第三步:编写转换脚本 /usr/local/bin/gen_nginx_blacklist.sh#!/bin/bash INPUT="/etc/nginx/blacklist.txt" OUTPUT="/etc/nginx/dynamic/blacklist.conf" # 清空输出文件 echo "# Auto-generated from blacklist.txt. DO NOT EDIT." > "$OUTPUT" # 读取 blacklist.txt,跳过注释和空行,生成 deny 规则 while IFS= read -r line; do line=$(echo "$line" | xargs) # 去除前后空格 if [[ -n "$line" && "$line" != \#* ]]; then echo "deny $line;" >> "$OUTPUT" fi done < "$INPUT" #测试配置 & 重载 nginx -t && systemctl reload nginx赋予执行权限:sudo chmod +x /usr/local/bin/gen_nginx_blacklist.sh第四步:在 Nginx 配置中引入黑名单server { listen 80; include /etc/nginx/dynamic/blacklist.conf; # ← 关键! location / { proxy_pass http://127.0.0.1:8080; } }第五步:启动监听服务(后台运行)# 创建 systemd 服务(推荐)或直接运行: nohup inotifywait -m -e modify,move,create,delete /etc/nginx/blacklist.txt \ --format '%f' | while read file; do echo "[$(date)] blacklist.txt changed, regenerating..." /usr/local/bin/gen_nginx_blacklist.sh done &更优雅做法:写成 systemd 服务使用方式 运维只需编辑 /etc/nginx/blacklist.txt# 示例内容 1.2.3.4 5.6.7.8 192.168.100.50保存文件后,3 秒内自动封禁!无需任何命令!优点: 只需一个文本文件 + 一个 Shell 脚本完全兼容原生 Nginx三大方案怎么选?场景推荐方案高并发、API 网关、需要毫秒响应✅ 方案一(OpenResty + Redis)防暴力破解、WordPress、中小站点✅ 方案二(fail2ban)不想装新软件、只要原生 Nginx、运维习惯改文件✅✅✅ 方案三(Shell + 文件监听)写在最后:封 IP 不该是体力活!无论你是技术大牛还是初级运维,总有一款方案让你 告别手动 reload ,把时间留给更有价值的事。
2025年11月15日
12 阅读
0 评论
0 点赞
2025-11-01
从 0 搭建 Nginx 安全网关:堵住 90% 的 Web 漏洞!
你的网站是否曾被扫描出以下高危问题?🔸 Host 头注入:攻击者伪造 Host 头,窃取密码重置链接🔸 敏感文件泄露:.git、.env、backup.zip 被直接下载🔸 目录遍历:访问 /static/../../../etc/passwd🔸 Nginx 版本号暴露:让黑客精准利用已知漏洞别再依赖“防火墙万能”了!Nginx本身就是一个强大的安全网关 ,只需几行配置,就能实现企业级防护。✅ 无需额外软件✅ 零成本加固✅ 符合等保 2.0 要求今天,手把手教你从 0 搭建一个安全、干净、合规的 Nginx 网关!🛡️ 第一步:隐藏身份 —— 隐藏 Nginx 版本号攻击者第一步就是探测你的服务版本。暴露版本 = 送漏洞地图!🔧 配置方法在 nginx.conf 的 http 块中添加:server_tokens off;✅ 效果: 原响应头:Server: nginx/1.24.0 优化后:Server: nginx📌 额外建议如果使用了 error_page 自定义错误页,确保页面中也不包含版本信息!🚫 第二步:封堵入口 —— 禁止敏感文件与目录访问很多数据泄露,都是因为一个 .env 或 .git 文件被公开下载!通用防护配置(推荐放在 http 或 server 块)# 禁止访问隐藏文件(以 . 开头) location ~ /\. { deny all; return 404; } # 禁止访问特定敏感文件 location ~* \.(env|git|svn|htaccess|htpasswd|bak|log|sql|zip|tar\.gz)$ { deny all; return 403; } # 禁止访问备份文件(如 config.php.bak) location ~* \.bak$ { deny all; return 403; } # 禁止目录遍历(Nginx 默认已防,但显式加固更安全) location ~ \.\./ { deny all; return 403; }原理说明: ~ 表示正则匹配 ~* 表示不区分大小写 deny all 直接拒绝访问,不返回文件内容🌐 第三步:锁定身份 —— 防 Host 头攻击(关键!)什么是 Host 头攻击?当 Nginx 配置了宽松的 server_name(如 server_name _; 或未设置默认拒绝 server)时,攻击者可构造恶意 Host 头:GET /password-reset HTTP/1.1 Host: attacker.com如果后端代码使用 Host 头生成重置链接(如 https://attacker.com/reset?token=xxx),攻击者就能窃取用户凭证!安全配置方案1. 设置默认拒绝的 server 块在所有 server 块之前,添加一个“兜底”配置:server { listen 80 default_server; listen 443 ssl default_server; server_name _ ""; return 403; } 此配置会拒绝所有未明确匹配的域名请求。2. 明确指定合法域名在你的业务 server 块中,只允许真实域名:server { listen 80; server_name www.yourdomain.com yourdomain.com; # 你的业务配置... }3. (可选)在应用层二次校验即使 Nginx 层做了防护,后端也应校验 Host 是否在白名单内,形成纵深防御。🛠️ 第四步:添加安全响应头(提升浏览器防护)现代浏览器支持多种安全策略,通过响应头启用:add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https:" always;说明: X-Frame-Options: DENY:防点击劫持 X-Content-Type-Options: nosniff:防 MIME 嗅探 always:确保错误页面也携带这些头🧪 验证是否生效1. 检查版本是否隐藏curl -I http://your-domain.com→ 确保 Server 字段不含版本号。2. 测试敏感文件访问curl -I http://your-domain.com/.env→ 应返回 403 或 404,不能返回 200。3. 测试 Host 头攻击curl -H "Host: evil.com" http://your-server-ip/→ 应返回 403,而非业务页面。📋 完整安全配置模板(推荐收藏)# /etc/nginx/nginx.conf 或站点配置 # 隐藏版本 server_tokens off; # 默认拒绝 server(放在最前面!) server { listen 80 default_server; listen 443 ssl default_server; server_name _ ""; return 403; } # 业务 server server { listen 80; server_name yourdomain.com www.yourdomain.com; # 安全响应头 add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; # 敏感文件防护(可放 http 块全局生效) location ~ /\. { deny all; return 404; } location ~* \.(env|git|bak|log|sql|zip)$ { deny all; return 403; } # 你的业务 location... location / { proxy_pass http://backend; } }🌟 总结:安全网关 4 大核心原则原则配置要点最小暴露隐藏版本、关闭无用模块最小权限只允许合法域名、拒绝未知 Host纵深防御Nginx + 应用层双重校验主动防护添加安全头、阻断敏感路径一个配置完善的 Nginx,胜过十台 WAF!
2025年11月01日
34 阅读
0 评论
0 点赞
2025-09-28
用lucky解决飞牛、群晖等各种nas、家里云安全远程访问教程!
用 nas 一定会有远程访问的需求,这个需求有数不清的解决方法,我们今天从 “看看,摸摸,玩玩” 这三个层次来聊聊远程访问这件事,最终要为大家呈现的是用 Lucky 这个神器。很多时候,我们的在外面打开 nas 的需求就是 “看看” ,并不是针对性的要做什么, 这时候 nas 官方中继就够用;想 “摸摸” 就得用 异地组网 或者 IPv6+DDNS 这些;最终要“玩玩”时候,就得顾及安全,速度,便捷等,目前能兼顾这些需求,只能是 lucky ,别无二选。一、准备工作:1、域名:最省心的还是推荐 spaceship 去找6数字以上的xyz域名,先买1年4.77元,再续9年42.96元,总共不超过50元。为了验证,我刚才又购买了一个,确定价格没变,记住买了立马去修改DNS为Cloudflare的两条DNS记录,减少后面的等待时间。2、IPv6网络:各家情况有不同,我这是移动宽带,本来就有IPv6,我把NAS网线直接插光猫上(老光猫有路由和Wi-Fi功能)就能用IPv6网络了。很多人推荐桥接,你搞不定直接找运营商客服找人帮你弄。3、服务商:推荐使用赛博菩萨Cloudflare+国内ip优选。提前在Cloudflare添加域名,并修改域名的DNS,然后从左上角头像那里点击后进入“配置文件”,点左侧“API令牌”,以此“创建令牌”,点击第一行“编辑区域DNS”后面的使用模版,区域资源这里选择生效的域名,然后点“继续以提示摘要”,最后完成创建令牌。把这个Token复制保存,一会要用两次。二、飞牛nas安装lucky和升级飞牛nas的应用商店搜索 “lucky” 就有,直接安装即可。自己刷的armbian用casaos或者1panel应用商店也有,哪怕你装的黑群晖的机器,添加了矿神套件后,也有lucky,并且都是一键安装,这没难度。不过飞牛nas应用商店的 lucky 版本是 v2.18.2,进入应用界面并登录后会有提示Github版本是 v2.18.6,而官网官网版本是 v2.19.4。你可以按指引从官网下载文件,并上传,如果你从应用商店安装,不建议这种方式操作升级,你应用商店的lucky会变成已安装,未启用,点击会提示端口被占用,因为真正的lucky已经在正常运行,并且飞牛系统升级时候会清除这个手动升级的版本。三、Lucky的设置1、lucky安全设置进入lucky应用后,有两个安全设置,我会优先设置。第一是安全入口,原本是IP:端口的访问格式,我们自定义一个/nicai,以后访问就是IP:端口/nicai这个格式,少了安全入口只会看到“Are you ok?”的亲切问候,如果有接触过bt面板,1panel面板等网站服务器管理面板,对安全入口肯定很熟,一定程度上能提高安全性。第二个是账号和强密码,不过lucky要强密码,所有nas上你安装的第三方应用,Docker容器牵扯到访问密码的都建议强密码,能减少很多麻烦。2、lucky设置DDNS前面都是铺垫,但是对安全性很重要。这里才进入 lucky 设置的正题,按顺序进行,更容易理解它的运作机制。先到动态域名里添加 “添加任务” ,任务名称随意,托管服务商我用Cloudflare我就选它,然后在Token那里填写Cloudflare复制来的Token。再点亮IPv6这一行,其他不动,提交任务即可。多说一句, Token 的作用和你账号密码一样,你账号密码能进行所有操作,Token进去能进行特定操作,刚使用的这个Token就只是能编辑这个域名的解析记录。然后再去添加记录,就是我们指定哪些域名通过对IPv6的解析能访问到这个nas。注意,此时只是能访问nas,还没有去具体划分某个域名能访问哪个应用。这是第三步才要做的事情。现在演示,我只添加两个,我要让fn这个二级域名访问主页,想要so这个二级域名访问pansou这个Docker这个应用。如果不放心,去Cloudflare那看看,正常情况下已经自动添加的两条解析记录。3、lucky设置SSL第二步我选择先设置好SSL,因为lucky的SSL可以一键申请,自动续签,并且支持泛域名证书,所以备受推崇。在 SSL/TLS 这里点击添加证书,选择 ACME ,再选择 “Let's Encrypt” 验证方式选择 “Cloudflare” ,填写一开始我们获取的 Token (其他域名商同理)。域名列表这里填写 “*.ami.gg” 这样的格式,好处是 A.ami 和 B.ami 等所有二级域名都能用到这个证书。其他都不用填,直接提交就行。有时候2分钟就申请成功了,有时候得快10分钟,甚至有报错,那就再试一次。4、lucky设置Web规则第三步要设置的叫“反向代理”,通俗地说,“反向代理”相当于一个集团公司的总部前台。你是访客,你无法直接去拜访某一个部门负责人,你得找前台,前台内部联系这个负责人出来和你对接。“反向代理”是隐藏了真正的受访者,“正向代理”是隐藏了真正的访问者,你这会要是趴在梯子上吃外面的瓜,你用的就是“正向代理”。现在我们给这个“前台”创建规则,告诉她从这个门口(端口)进来的人,我们才接待。不是这个端口来的不归我们管。要把TLS打开,前面我们申请的SSL证书就自动起效了。都不用去操心怎么部署,这个便捷程度别家可没有。如果 so 进来了,我们把 8282 这个端口的 Docker 服务交给它,如果 fn 进来了,我们把https的 5667 入口给它。127和192的地址在这里都管用。同理,你可以为所有你的第三方应用和Docker创建这些子规则。每一个服务都能独立访问,还是自定义的地址,并且你只要把前台这个门口(端口)把好关就行。这样安全性就提高非常多了。四、测试成果访问带 8998 端口的 fn 二级域名和 so 的二级域名,可以正常访问,浏览器没有“不安全”的提示,证书信息一切正常。但是注意,我是在演示的机器,所以把端口,二级域名都展示给大家,演示完毕,这个机器就关机了所以没关系。你自己使用的nas,一定要把这个端口绝对保密,API令牌的Token绝对保密,安全入口绝对保密,二级域名保密,你也可以使用三级域名,其实用到nas的域名本身也建议你保密,不让其他人知道最好。教程到此结束,其实我们只用到 lucky 的三个主要功能,还有五六个功能我们当前不设计涉及,所以没碰它。而如果你正在用飞牛nas本身的 DDNS ,或者 DDNS-GO 这个应用,它只是实现了三个功能里的第一个动态域名的解析。最后你要是勤快点,可以凑合从飞牛nas的证书那里上传,每三个月去手动上传一次,每次上传你都得去找个地方申请,再下载,然后区分三个文件该传哪一行,这就有点劳心费神了。哪怕你用群晖,它都能让你一键搞定https访问。用lucky,就有点一劳永逸的韵味了。如果你只用DDNS,忽略SSL和端口隐患,就好似你回家推开了大门,进去歇着了,你可知道有多少人跟着你也发现了这个敞开的门,以后发生的事,就是你的故事了。
2025年09月28日
82 阅读
0 评论
0 点赞
2025-07-05
用虚拟IP扩容服务器端口池
最近遇到一个棘手的问题:服务器的 WebSocket 服务在高并发场景下,客户端连接数达到一万多时,服务器的端口资源被耗尽了。导致后面的任何请求都没响应。通过 netstat 查看连接情况,发现所有连接的本地端口都是从 32768 开始的,即使我已经将系统的端口范围设置为 1024-65535[root@server ~]# cat /proc/sys/net/ipv4/ip_local_port_range 1024 65535但实际分配的端口还是从32768开始,导致高位端口很快被耗尽,新连接无法建立。问题分析经过一番调研,发现这个问题在 Linux 系统中很常见。虽然设置了 ip_local_port_range 为 1024-65535,但实际上如下:glibc的默认行为:很多Linux发行版的glibc硬编码了临时端口分配的起始值为32768内核版本限制:老版本内核(如3.10)没有 ip_unprivileged_port_start 参数历史遗留问题:这是Linux系统的"正常"行为,不是配置错误我的服务器环境: 内核:3.10.0-1127.19.1.el7.x86_64glibc:2.17系统:CentOS 7.6解决方案探索方案一:升级系统(不推荐)升级glibc和内核到新版本可以支持更灵活的端口分配,但在生产环境中风险极高,容易导致系统崩溃。方案二:虚拟IP扩容(推荐)通过在同一台服务器上添加多个虚拟IP,每个IP都拥有独立的端口池,从而成倍扩容端口资源。虚拟IP方案实施第一步:查看网络环境首先确认服务器的网卡和IP配置:[root@server ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:1f:ee:09 brd ff:ff:ff:ff:ff:ff inet 1.2.3.17/20 brd 11.22.33.255 scope global dynamic eth0可以看到主IP是 1.2.3.17/20 ,子网掩码是 /20。第二步:添加虚拟IP根据主IP的网段,添加几个虚拟IP:ip addr add 1.2.3.100/20 dev eth0 ip addr add 1.2.3.101/20 dev eth0 ip addr add 1.2.3.102/20 dev eth0这里的ip后三位可以随便写。ip个数最好是100个以内,多了会影响性能。验证添加成功:ip addr show eth0显示出刚才添加的ip就是没问题的第三步:配置Nginx负载均衡修改Nginx配置,将流量分发到不同的虚拟IP:upstream websocket_backend { server 1.2.3.100:38088; server 1.2.3.101:38088; server 1.2.3.102:38088; } server { listen 80; server_name xx.com; location /请求上下文 { proxy_pass http://websocket_backend/请求上下文; proxy_redirect default; proxy_pass_header Server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; } }第四步:重启服务重启 WebSocket服务端 和 Nginx ,让配置生效:nginx -t nginx -s reload效果验证查看连接分布使用 ss 命令查看连接是否被正确分发到不同虚拟IP:ss -tnp | grep 38088输出显示连接确实被分发到了不同IP:CLOSE-WAIT 1 0 1.2.3.100:38088 169.24.13.2:36294 CLOSE-WAIT 1 0 1.2.3.101:38088 169.24.13.2:57430 CLOSE-WAIT 1 0 1.2.3.102:38088 169.24.13.2:37558这里的169.24.13.2不用管,这是我的nginx用的docker镜像的原因端口资源扩容效果之前:所有连接都占用 1.2.3.17 的端口池(32768~65535)现在:连接分散到3个虚拟IP,每个IP都有独立的端口池效果:端口资源扩容3倍,极大缓解端口耗尽问题注意事项1. 子网掩码的确定添加虚拟IP时,子网掩码必须和主IP一致。查看方法很简单:ip addr show eth0看输出中的 inet 1.2.3.17/20,直接使用 /20 即可。2. 虚拟IP的持久化临时添加的虚拟IP重启后会失效,需要写入启动脚本:# 编辑 /etc/rc.local ip addr add 1.2.3.100/20 dev eth0 ip addr add 1.2.3.101/20 dev eth0 ip addr add 1.2.3.102/20 dev eth0 # 赋予执行权限 chmod +x /etc/rc.d/rc.local3. 网络架构要求Nginx 和 WebSocket服务端 必须在同一台服务器虚拟IP必须在同一网段内,不能和其他机器冲突如果是云服务器,可能需要先在控制台申请辅助私网IP总结通过 虚拟IP + Nginx 负载均衡的方案,成功将端口资源扩容了 3倍,有效解决了高并发 WebSocket 场景下的端口耗尽问题。这个方案的优势:实施简单:只需添加虚拟IP和配置Nginx风险较低:不需要升级系统内核效果显著:端口资源成倍扩容扩展性好:可以根据需要继续添加虚拟IP对于高并发WebSocket、短连接等场景,这是一个非常实用的解决方案。
2025年07月05日
32 阅读
0 评论
0 点赞
2025-02-05
[Windows] 卡巴斯基Kaspersky 21.20.8.505 免费版
卡巴斯基免费版从界面到功能和使用体验来说,简洁、高效、严苛、轻巧,可以“弥补”火绒杀毒能力不强,同时也不会像 Microsoft Defender 误报。卡巴斯基免费版,拥有文件反病毒、反网络攻击、安全浏览、邮件反病毒、系统监控、卡巴斯基安全网络等功能,与收费版只差了防火墙和入侵防御,对普通用户来说,免费版足够用了。卡巴斯基免费版具有以下防护功能:文件反病毒: 可扫描所有打开、保存和运行的文件;反网络攻击: 可保护您的计算机,防御危险网络活动和网络攻击;安全浏览: 可检查网站是否安全并阻止病毒下载;邮件反病毒: 可扫描邮件客户端中接收和发送的邮件;系统监控: 防护勒索软件和恶意软件以及回滚由恶意程序活动导致的系统更改;卡巴斯基安全网络: 包含有关文件、网络资源和软件的信誉信息的云数据库。卡巴斯基最新版本 21.20.8.505已经可以下载,卡巴斯基在中国地区提供的最新21.20.8.505免费版本还能不需要付费继续使用,现提供卡巴斯基免费版KFA 21.20.8.505在线和离线安装包和安装测试过程截图供有需要者安装测试。卡巴斯基 Kaspersky 21.20.8.505(Free/Standard/Plus/Premium)在线安装包官方下载链接:https://dm.s.kaspersky-labs.com/zh-Hans-CN/Kaspersky4Win/21.20.8.505/startup.exe卡巴斯基 Kaspersky 21.20.8.505(Free/Standard/Plus/Premium)在线安装包&离线安装包蓝奏云下载链接:https://www.lanzouw.com/b035noi6xe 密码:b45i其中:卡巴斯基Kaspersky4Win 21.20.8.505.exe为卡巴斯基 Kaspersky 21.20.8.505(Free/Standard/Plus/Premium)官方在线安装包下载卡巴斯基Kaspersky 21.20.8.505.1.rar、卡巴斯基Kaspersky 21.20.8.505.2.rar、卡巴斯基Kaspersky 21.20.8.505.3.rar解压后就能得到卡巴斯基卡巴斯基Kaspersky 21.20.8.505官方离线exe安装包用官方在线安装包或离线安装包安装完成后,输入卡巴斯基kaspersky 免费试用激活码( 366 天,到期后,点击授权许可界面的更新状态按钮即可重新获得一年): 3SXCM-M9RJM-6985N-PWKP7 或 A23B5-44EXM-85MVF-KM2GQ 即可激活免费版。如电脑上已经安装卡巴21.19.7.527免费版或其他版本,想安装测试 21.20.8.505免费版本,建议先卸载21.19.7.527等卡巴斯基旧的版本,全新安装 21.20.8.505如果不能用卡巴斯基自带的卸载程序卸载,可用卡巴斯基 Kaspersky 官方卸载工具试试:https://support.kaspersky.com/common/uninstall/1464https://media.kaspersky.com/utilities/ConsumerUtilities/kavremvr.exe
2025年02月05日
166 阅读
0 评论
0 点赞
2025-01-23
首发!!移动新光猫九联UNG853H破解超级密码
论和移动师傅搞好关系有多么重要!最近在升级捣鼓家里的WiFi,但因为单线复用的问题需要超级密码登录光猫,所以不得不问师傅要超级密码,但是因为所有运营商都启用了随机密码政策,所以就问师傅要,还好跟师傅混的关系很好,每一次问超级密码都会发给我,但我想着每一次都麻烦师傅不太好,所以就有了以下文章:我的光猫是最新版的un853h,因为让师傅换了小个一点的,好让弱电箱清净一些,已经麻烦师傅帮我换了三次光猫了😂还好师傅每次都不觉得麻烦,有求必应,有次7点多了还来换但是因为是新版光猫,所以就在网上找了很多教程碰碰撞撞才总结方法,理论上是支持九联所有型号的光猫的1、首先查看光猫的普通密码,可以在光猫后面看到,再打开光猫管理页面登录登录进去后再输入:http://192.168.1.1/webcmcc/telnet.html然后看到 open telnet success 就成功打开 telnet 了2、打开电脑的 telnet,如何打开电脑 telnet 可以在网上查,这里我就不再啰嗦3、打开 cmd,然后输入 telnet 192.168.1.1提示输入账号密码,账号密码就是光猫背后的普通的账号密码,然后进入到命令行界面,显示,然后再输入cd /返回根目录,再输入 ls 查看当前目录下文件夹,看到 config,输入 cd /config 进入 config 文件夹再输入 ls 查看,看到 workb 文件夹,再输入 cd workb 文件夹,或者像我图中一样一步到位,直接 cd /config/workb,进入 workb 文件夹然后再输入 ls,查看文件,看到有个 backup_lastgood.xml,输入 vi backup_lastgood.xml,进入文件查看此时直接在键盘输入 /CMCCAdmin 回车,直接跳转到CMCCAdmin 这一行,下面第一个就是密码了到此就成功了!!!
2025年01月23日
257 阅读
0 评论
0 点赞
2024-11-05
将云服务器IP绑定到本地服务器或OpenWrt,彻底告别家宽没有公网IP的痛!
通过VPN将云服务器IP绑定到本地服务器或OpenWrt之前看到有某某某云服务器商有售卖家庭宽带IP购买的服务,宣称是可以给家庭宽带增加一条静态IP,出于好奇,我购买了一个月进行尝试。在客服使用 SSH 连接将 IP 链接到我本地的Linux服务器后,我通过查询系统进程和网络接口的方式发现,其实所谓增加静态 IP 不过是使用 WireGuard 将公网IP绑定到设备上,于是我产生了一个大胆奇妙的想法,能不能将自己手边吃灰的云服务器IP绑定到本地,甚至绑定到OpenWrt上,经过一番摸索和与GPT的深入交流,成功将云服务器IP绑定到了本地服务器,这种绑定和frp有所不同,所有访问到云服务器IP的请求,都将转发到本地服务器,甚至包括Ping请求。正如上图所示,我使用的是腾讯云北京的服务器,正常在北京节点对其ip进行ping命令,得到的延迟应该在5ms以内,但是现在ping的延迟增加了从腾讯云北京到我家里的时间。并且现在通过这台服务器的IP可以直接访问到我家里的设备。下面是详细的部署流程。公网服务器部署WireGuard安装WireGuardsudo apt update sudo apt install wireguard生成秘钥对# 生成公网服务器的密钥对 wg genkey | tee server_privatekey | wg pubkey > server_publickey # 生成无公网服务器的密钥对 wg genkey | tee client_privatekey | wg pubkey > client_publickey密钥对文件保存在当前命令行路径下的 server_privatekey 和 server_publickey 文件,以及 client_privatekey 和 client_publickey,其中 server_privatekey 和 server_publickey 为公网服务器的私钥与公钥,client_privatekey 和 client_publickey 为无公网服务器的私钥与公钥,这两对秘钥需要在妥善保存后删除。下文中将以以下代称称呼代称秘钥文件名称<公网服务器的私钥>server_privatekey<公网服务器的公钥>server_publickey<无公网服务器的私钥>client_privatekey<无公网服务器的公钥>client_publickey配置WireGuard创建并编辑配置文件 /etc/wireguard/wg0.confsudo vi /etc/wireguard/wg0.conf添加以下内容[Interface] Address = 10.1.0.1/24 PrivateKey = <公网服务器的私钥> ListenPort = 51820 [Peer] PublicKey = <无公网服务器的公钥> AllowedIPs = 10.1.0.2/32将 <公网服务器的私钥> 替换为你生成的 privatekey,将 <无公网服务器的公钥> 替换为无公网服务器生成的 publickey。启动WireGuardsudo wg-quick up wg0无公网服务器部署 WireGuard这里先以普通Ubuntu服务器为例,如果想在OpenWrt上部署,本节主要查看配置WireGuard小节即可。配置WireGuard创建并编辑配置文件 /etc/wireguard/wg0.confsudo vi /etc/wireguard/wg0.conf添加以下内容[Interface] Address = 10.1.0.2/24 PrivateKey = <无公网服务器的私钥> [Peer] PublicKey = <公网服务器的公钥> Endpoint = <公网服务器的IP>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25或者填写[Interface] Address = 10.1.0.2/24 PrivateKey = <无公网服务器的私钥> [Peer] PublicKey = <公网服务器的公钥> Endpoint = <公网服务器的IP>:51820 AllowedIPs = 10.1.0.1/32 PersistentKeepalive = 25启动 WireGuardsudo wg-quick up wg0配置端口转发本节内所有操作均在公网服务器上执行,并建议彻底关闭云服务器上的网络防火墙。配置IP转发在公网服务器上启用 IP 转发sudo sysctl -w net.ipv4.ip_forward=1如果需要永久生效,需编辑 /etc/sysctl.conf 并取消 net.ipv4.ip_forward=1 的注释或添加 net.ipv4.ip_forward=1。配置防火墙规则在公网服务器上使用 iptables 将流量转发到无公网服务器sudo iptables -t nat -I PREROUTING -p udp --dport 51820 -j ACCEPT sudo iptables -t nat -A PREROUTING -d <公网服务器的IP> -j DNAT --to-destination 10.1.0.2 sudo iptables -t nat -A POSTROUTING -j MASQUERADE注意!!! 这里 <云服务器的IP> 有很多大厂的服务器,使用 ip addr 命令查询到的网卡绑定IP与实际公网IP不同,这里一定要使用 网卡实际绑定的 ip 而不是 公网IP 。为了确保规则在重启后仍然有效,保存规则sudo apt install iptables-persistent sudo netfilter-persistent save验证配置1、确认 WireGuard 隧道连接已建立sudo wg show2、通过公网 IP 测试连接,确保请求能够转发到无公网服务器。注意 确保公网服务器和无公网服务器的防火墙配置正确,允许必要的端口和协议通过。OpenWrt部署WireGuard1、首先确保 OpenWrt 上安装以下插件2、插件安装完成后,必须重启路由器,否则无法再接口处查看到 WireGuard 接口。3、网络-> 接口-> 添加新接口 输入名称 wg0 和选择 WireGuard VPN协议4、编辑接口-> 导入配置,粘贴无公网服务器部署 WireGuard 一节中配置 WireGuard 中的配置文件即可。5、将新建接口加入到 wan 防火墙区域6、完成后即可把服务器 IP 当做 OpenWrt 的一个 wan 口接入使用,相当于给你的宽带绑定了一条 公网IP 。如果遇到绑定 OpenWrt 后无效的情况,将 AllowedIPs 从 0.0.0.0/0 修改为公网服务器 ip 即可,例如:10.1.0.1/32 。
2024年11月05日
169 阅读
0 评论
0 点赞
2024-09-26
Linux ubuntu debian ufw (防火墙) 使用指南
前言UFW 是 “简单防火墙” 的缩写,是更复杂的 iptables 实用程序的前端。它旨在使管理防火墙变得像设置端口打开和关闭以及调节允许通过的流量一样简单。ufw 可以在 Debian 和 Ubuntu 系统中使用,是默认的防火墙配置工具,默认 ufw 是禁用状态,支持 IPv4 和 IPv6。国内的服务器,一般都会有安全组,如果有安全组,则无须使用 ufw国外的服务器,一般端口全都是放行的,所以有必要使用 ufw如果是 CentOS 系统,可以使用 firewalld,强烈建议弃用 CentOS 系统,官方早已经不维护了,会有很多漏洞无法修复。推荐系统:Debian > Ubuntu >>>>> CentOS提示:以下所有命令默认在 root 环境下运行,如果是非 root 环境,则命令需要加前缀:sudoufw 使用更新软件包apt update apt upgrade -y安装# 安装 apt-get install ufw # 帮助命令 ufw --help推荐配置如果要开启防火墙的话,建议先拒绝所有入站流量,然后逐一打开需要的端口。# 默认阻止入站(不会立即切断你的 SSH 连接,因为防火墙尚未启用) ufw default deny incoming # 默认允许出站 ufw default allow outgoing # 拒绝所有访问(如果配置了入站/出战,这个可以不配置) ufw default deny # 根据需求开启端口 ufw allow 22⚠注意确保在修改 SSH 端口后,不要关闭当前 SSH 窗口,尝试使用新的端口进行 SSH 登录,以确保没有防火墙或其他网络配置问题,以免被自己锁定出服务器。启用禁用# 启用 ufw enable # 查看状态 ufw status verbose # 禁用 ufw disable # 防火墙规则存放位置 # /etc/ufw 中的规则文件(后缀名:.rules)允许拒绝allow 例子:# 接受 97 端口的 tcp/udp 流量 ufw allow 97 # 接受 97 端口的 tcp/udp 流量,并添加备注 ufw allow 97 comment 'open 97 port' # 接受 97 端口的 tcp 流量 ufw allow 97/tcp # 接受 97 端口的 udp 流量 ufw allow 97/udp # 通过服务名来处理, 会从 /etc/services 中查找端口 ufw allow ssh # 允许特定IP访问 ufw allow from 1.2.3.4 # 允许特定子网访问 ufw allow from 1.2.3.4/97 # 允许特定IP使用任何协议访问22端口 ufw allow from 1.2.3.4 to any port 22 # 允许特定IP使用任何TCP协议访问22端口 ufw allow from 1.2.3.4 to any port 22 proto tcpdeny 例子:# 拒绝 97 端口的 tcp/udp 流量 ufw deny 97 # 拒绝 97 端口的 tcp 流量 ufw deny 97/tcp # 拒绝 97 端口的 udp 流量 ufw deny 97/udp # 通过服务名来处理, 会从 /etc/services 中查找端口 ufw deny ssh # 拒绝特定IP访问 ufw deny from 1.2.3.4 # 同allow ufw deny from 1.2.3.4 to any port 22 ufw deny from 1.2.3.4 to any port 22 ufw allow from 1.2.3.4/97 to any port 22 proto tcp删除# 要删除规则,只需在原始规则前加上删除,删除 80 端口的 tcp 配置 ufw delete deny 80/tcp # 显示规则的顺序和ID号 ufw status numbered # 删除编号规则(删除规则,规则将向上移动以填充列表) ufw delete 1日志# 启用日志 ufw logging on # 禁用日志 ufw logging off
2024年09月26日
37 阅读
0 评论
0 点赞
1
2
...
4