From 784336c6081e3eed8f785de21bd95d01a8b2cb1e Mon Sep 17 00:00:00 2001 From: starry <115192496+sky22333@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:55:29 +0800 Subject: [PATCH] Create tun2socks.sh --- proxy/tun2socks.sh | 175 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 proxy/tun2socks.sh diff --git a/proxy/tun2socks.sh b/proxy/tun2socks.sh new file mode 100644 index 0000000..8d6a2d9 --- /dev/null +++ b/proxy/tun2socks.sh @@ -0,0 +1,175 @@ +#!/bin/bash +set -e + +CONFIG_DIR="/etc/tun2socks" +CONFIG_FILE="$CONFIG_DIR/config.yaml" +SERVICE_FILE="/etc/systemd/system/tun2socks.service" +BINARY_PATH="/usr/local/bin/tun2socks" + +# 检查 root +if [ "$EUID" -ne 0 ]; then + echo "请使用 root 运行脚本" + exit 1 +fi + +# 安装 tun2socks +install_tun2socks() { + if ! command -v tun2socks &>/dev/null; then + echo "检测到 tun2socks 未安装,正在下载..." + REPO="heiher/hev-socks5-tunnel" + + # 获取系统架构 + ARCH=$(uname -m) + case "$ARCH" in + x86_64) + ARCH_TAG="linux-x86_64" + ;; + aarch64 | arm64) + ARCH_TAG="linux-arm64" + ;; + armv7l) + ARCH_TAG="linux-armv7" + ;; + *) + echo "不支持的架构: $ARCH" + exit 1 + ;; + esac + + DOWNLOAD_URL=$(curl -s https://api.github.com/repos/$REPO/releases/latest \ + | grep "browser_download_url" | grep "$ARCH_TAG" | cut -d '"' -f 4) + if [ -z "$DOWNLOAD_URL" ]; then + echo "无法获取 tun2socks 下载链接,请手动安装" + exit 1 + fi + + curl -L -o "$BINARY_PATH" "$DOWNLOAD_URL" + chmod +x "$BINARY_PATH" + echo "tun2socks 安装完成 ($ARCH)" + else + echo "tun2socks 已安装" + fi +} + +# 配置 Socks5 +configure_tun2socks() { + mkdir -p "$CONFIG_DIR" + read -rp "请输入Socks5服务器地址 [默认127.0.0.1]: " SOCKS_ADDRESS + SOCKS_ADDRESS=${SOCKS_ADDRESS:-127.0.0.1} + read -rp "请输入Socks5服务器端口 [默认7890]: " SOCKS_PORT + SOCKS_PORT=${SOCKS_PORT:-7890} + + cat > "$CONFIG_FILE" < "$SERVICE_FILE" <