ssh一键部署frpc内网穿透脚本
- 更新:2023-03-22 23:05:33
- 首发:2023-03-13 23:22:16
- 源代码
- 3367
以下是实现自动安装frpc的Shell脚本,实现ssh的22端口内网穿透,注册systemd服务开机自动启动。
直接使用线上地址快速下载并执行Shell脚本一件部署可以使用以下命令:
使用curl:
curl -sSL https://openapi.site/install_frpc.sh | bash -s 端口号 token server_addr [server_port=7000]
使用wget:
wget -qO- https://openapi.site/install_frpc.sh | bash -s 端口号 token server_addr [server_port=7000]
其中端口号、token、server_addr为必须传入的参数,server_port为可选参数,如果没有传入则默认为7000。请根据自己的需要替换相应的参数值。
如果执行成功,将会输出“Successfully started frpc”,否则会输出失败信息。
附:
install_frpc.sh
文件内容:
#!/bin/bash
# 获取参数
if [ $# -lt 3 ]; then
echo "Usage: $0 port token server_addr [server_port=7000]"
exit 1
fi
port=$1
token=$2
server_addr=$3
server_port=${4:-7000}
# 获取操作系统类型和架构
case $(uname -m) in
x86_64)
arch="amd64"
;;
i386 | i686)
arch="386"
;;
armv6l | armv7l | armv7hl)
arch="arm"
;;
aarch64 | arm64)
arch="arm64"
;;
mips*)
if [ "$(uname -m)" = "mips64" ]; then
arch="mips64"
elif [ "$(uname -m)" = "mips64el" ]; then
arch="mips64le"
elif [ "$(uname -m)" = "mips" ]; then
arch="mips"
else
arch="mipsle"
fi
;;
riscv64)
arch="riscv64"
;;
*)
echo "Unsupported architecture $(uname -m)"
exit 1
esac
case $(uname -s) in
Linux)
os_type="linux"
;;
Darwin)
os_type="darwin"
;;
*)
echo "Unsupported operating system $(uname -s)"
exit 1
esac
# 下载最新版frp压缩文件
wget -O frp.tar.gz "https://nat.openapi.site/frp/download?os_type=${os_type}&arch=${arch}"
if [ $? -ne 0 ]; then
echo "Failed to download frp"
exit 1
fi
# 解压文件并拷贝可执行文件到/usr/bin/frpc目录下
tar -zxvf frp.tar.gz
if [ $? -ne 0 ]; then
echo "Failed to extract frp"
exit 1
fi
sudo mv frp*/frpc /usr/bin/frpc
# 创建/etc/frp/目录和配置文件
sudo mkdir -p /etc/frp/
if [ ! -f /etc/frp/frpc.ini ]; then
cat > frpc.ini << EOF
[common]
token = ${token}
server_addr = ${server_addr}
server_port = ${server_port}
[ssh-${os_type}-${arch}-${port}]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = ${port}
EOF
fi
sudo mv frpc.ini /etc/frp/frpc.ini
# 创建service配置文件
cat > frpc.service << EOF
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
EOF
# 根据操作系统类型放置service配置文件到对应的systemd目录下
if [[ "$(uname -s)" == "Linux" ]]; then
if [[ -d "/lib/systemd/system" ]]; then
sudo mv frpc.service /lib/systemd/system/frpc.service
elif [[ -d "/usr/lib/systemd/system" ]]; then
sudo mv frpc.service /usr/lib/systemd/system/frpc.service
else
echo "Failed to find systemd directory"
exit 1
fi
else
echo "Unsupported operating system"
exit 1
fi
rm -rf frp*
# 启动frpc
sudo systemctl enable frpc --now
if [ $? -eq 0 ]; then
echo "Successfully started frpc"
else
echo "Failed to start frpc"
exit 1
fi
echo -e "\n"
systemctl status frpc
使用方式:
bash install_frpc.sh 端口号 token server_addr [server_port=7000]
其中端口号、token、server_addr为必须传入的参数,server_port为可选参数,如果没有传入则默认为7000。
shell中下载最新版frp压缩文件的中转站请参考《frp更新中心API》。
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区
暂无内容
老师你好,我希望能用一个openwrt路由器实现IPv4和IPv6的桥接,请问我该如何实现?我尝试了直接新增dhcpv6的接口,但是效果不甚理想(无法成功获取公网的ipv6,但是直连上级路由的其他设备是可以获取公网的ipv6地)
![%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE20241205230845.png](https://cdn.wyr.me/visitor-files/2024-12-05/1733411344287屏幕截图 2024-12-05 230845.png)你好
,为什么我这里是0039 813C 0600 0075 16xx xx xx,只有前6组是相同的,博客中要前8位相同,这个不同能不能照着修改呢?我系统版本是Win1124H2
大神你好,win11专业版24h2最新版26100.2033,文件如何修改?谢谢
win11专业版24h2最新版26100.2033,Windows Feature Experience Pack 1000.26100.23.0。C:\Windows\System32\termsrv.dll系统自带的这个文件,39 81 3C 06 00 00 0F 85 XX XX XX XX 替换为 B8 00 01 00 00 89 81 38 06 00 00 90。仍然无法远程连接。原来是win11 21h2系统,是可以远程链接的。共享1个主机,2个显示器,2套键鼠,各自独立操作 各自不同的账号,不同的桌面环境。
博主,win11专业版24h2最新版,C:\Windows\System32\termsrv.dll系统自带的这个文件,找不到应该修改哪个字段。我的微信:一三五73二五九五00,谢谢