惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
J
Java Code Geeks
V
V2EX
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
博客园 - Franky
爱范儿
爱范儿
T
Tailwind CSS Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
博客园_首页
B
Blog RSS Feed
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Anyeの小站

PlayGuard,让你的播放器老实点! Peg - 命令行便签 · 把终端输出钉上布告板 2025 年终总结:折腾不止,热情常青 告别公网暴露风险:mTLS助你构建家里云安全边界 🚀 0 代码部署:Halo 博客与企业门户系统 B站跟随系统深色模式脚本——让你的B站体验更丝滑 【1024抽奖】EdgeOne下线源站防护?这个办法更简单! 全新!Edge 还是卸载不掉?来试试这个! 混元模型玩家必看:CNB API 不限量调用! 1Panel 应用商店如何上架应用 Next Terminal 实战:内网无密码安全登录 用了 EdgeOne 降本增效,源站却可能裸奔? 降本增效!上云真香! 在线重装 Proxmox VE SSL证书申请老出问题?这套组合直接帮你搞定! 🌐 森屿云:让数字化转型像呼吸一样自然 1Panel v2 首发体验(alpha) Vscode/Code-Server 安装中文包——CI/CD DockerHub Mirror 终极解决方案——零成本,速度超快! 本地跑不动 QwQ?快用 CNB,免费运行满血 QwQ! Docker Push 巨慢?Skopeo 来拯救 2024 年终总结:与 17170 位读者相遇的旅程 Halo 插件 thyuu-embed 主题样式注入模板 Windows 11 卸载 Edge 小破站 6 级萌新前来挑战硬核会员,答题分享 手机系统杂谈 1Panel 自建邮局 - Docker Mailserver 1Panel 推送 SSL 证书到阿里云、腾讯云 整了几个简洁的单页,欢迎来扒 1Panel 部署 Logto 对接自有平台
云厂 200Mbps 小鸡,家里云的希望
Anye · 2025-01-18 · via Anyeの小站

前言

1月13日,阿里云推出首款全新升级的轻量应用服务器“通用型实例”,峰值带宽 200Mbps,虽然是共享带宽, 但实际上高峰期也能保持个 50Mbps 左右的速度,在家里云普遍上传超不过 70Mbps,各家纷纷回收公网 IP 的今天,无疑还是够用的,价格相对来说还算能够接受,成为了家里云穿透的最佳首选。

https://www.aliyun.com/minisite/goods?userCode=td6jqc1c

1月17日,腾讯云也推出了轻量应用服务器“锐驰型套餐”限量内测,同样峰值带宽 200Mbps,部分地域还支持开启 ipv6,价格性能更具竞争力,进一步丰富了市场选择。

https://curl.qcloud.com/Tkb1BeLp

脚本部署 Wirguard 内网穿透

一键安装

你可以通过以下命令直接运行远程脚本,无需克隆仓库:

curl -sSL https://git.anye.xyz/Anye/wg-piercing/raw/branch/main/wg-piercing.sh | bash

脚本功能

脚本提供了以下功能:

  1. 一键安装:自动安装 WireGuard 和相关依赖,生成密钥对,配置服务端和客户端,并启动 WireGuard 服务。

  2. 停止服务:停止 WireGuard 服务并清理相关配置。

  3. 退出:退出脚本。

使用步骤

  1. 运行脚本后,选择 1) 一键安装 选项。

  2. 脚本会自动生成客户端配置和二维码,请妥善保存这些信息。

  3. 使用生成的客户端配置连接到 WireGuard 服务器,享受内网穿透服务。

注意事项

  • 脚本会记录日志到 /var/log/wireguard_setup.log,方便排查问题。

  • 客户端配置和二维码仅显示一次,请务必妥善保存。

  • 如果需要停止服务,可以选择 2) 停止服务 选项。

脚本示例

#!/bin/bash

set -e

# 日志记录函数
log() {
  echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> /var/log/wireguard_setup.log
}

# 获取服务器 IP
get_server_ip() {
  SERVER_IP=$(ip addr show $(ip route | grep default | awk '{print $5}') | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
}

# 安装必要的软件包
install_wireguard() {
  log "正在安装 WireGuard 和相关依赖..."
  apt update && apt install -y wireguard qrencode curl || { log "安装失败"; exit 1; }
}

# 获取公网服务器 IP
get_public_ip() {
  log "获取公网 IP..."
  PUBLIC_IP=$(curl -s 4.ipw.cn)
  if [ -z "$PUBLIC_IP" ]; then
    log "无法获取公网 IP,请检查网络连接。"
    exit 1
  fi
  log "公网 IP: $PUBLIC_IP"
}

# 生成密钥对
generate_keys() {
  log "生成服务器私钥和公钥..."
  SERVER_PRIVATE_KEY=$(wg genkey)
  SERVER_PUBLIC_KEY=$(echo "$SERVER_PRIVATE_KEY" | wg pubkey)

  log "生成客户端私钥和公钥..."
  CLIENT_PRIVATE_KEY=$(wg genkey)
  CLIENT_PUBLIC_KEY=$(echo "$CLIENT_PRIVATE_KEY" | wg pubkey)
}

# 配置服务端
configure_server() {
  log "配置服务端..."
  WG_CONFIG="/etc/wireguard/wg0.conf"
  cat > "$WG_CONFIG" <<EOF
[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVATE_KEY
ListenPort = 65535

[Peer]
PublicKey = $CLIENT_PUBLIC_KEY
AllowedIPs = 10.9.0.2/32
EOF
  chmod 600 "$WG_CONFIG"
}

# 配置客户端并生成二维码
configure_client() {
  log "配置客户端并生成二维码..."
  CLIENT_CONFIG=$(cat <<EOF
[Interface]
Address = 10.9.0.2/24
DNS = 119.29.29.29, 223.6.6.6
PrivateKey = $CLIENT_PRIVATE_KEY

[Peer]
PublicKey = $SERVER_PUBLIC_KEY
Endpoint = $PUBLIC_IP:65535
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
  )

  # 输出提示信息
  echo "============================================================"
  echo "以下客户端配置和二维码仅显示一次,请妥善保存!"
  echo "============================================================"

  # 输出客户端配置
  echo "客户端配置: "
  echo "$CLIENT_CONFIG"

  # 生成二维码
  echo "客户端配置二维码: "
  echo "$CLIENT_CONFIG" | qrencode -t ansiutf8

  # 再次提示
  echo "============================================================"
  echo "以上客户端配置和二维码仅显示一次,请妥善保存!"
  echo "============================================================"
}

# 启动 WireGuard 服务
start_wireguard() {
  log "启动 WireGuard 服务..."
  wg-quick up wg0 || { log "启动失败"; exit 1; }

  log "启用 IP 转发..."
  sysctl -w net.ipv4.ip_forward=1

  log "配置 iptables..."
  get_server_ip
  iptables -t nat -I PREROUTING -p udp --dport 65535 -j ACCEPT
  iptables -t nat -A PREROUTING -d $SERVER_IP -j DNAT --to-destination 10.9.0.2
  iptables -t nat -A POSTROUTING -j MASQUERADE
}

# 停止 WireGuard 服务
stop_wireguard() {
  log "停止 WireGuard 服务..."
  wg-quick down wg0 || { log "停止失败"; exit 1; }

  log "禁用 IP 转发..."
  sysctl -w net.ipv4.ip_forward=0

  log "移除 iptables 规则..."
  get_server_ip
  iptables -t nat -D PREROUTING -p udp --dport 65535 -j ACCEPT
  iptables -t nat -D PREROUTING -d $SERVER_IP -j DNAT --to-destination 10.9.0.2
  iptables -t nat -D POSTROUTING -j MASQUERADE
}

# 主菜单
echo "WireGuard 管理脚本"
echo "1) 一键安装"
echo "2) 停止服务"
echo "3) 退出"

read -p "请选择一个选项: " option

case $option in
  1)
    install_wireguard
    get_public_ip
    generate_keys
    configure_server
    configure_client
    start_wireguard
    ;;
  2)
    stop_wireguard
    ;;
  3)
    exit 0
    ;;
  *)
    echo "无效选项"
    exit 1
    ;;
esac