ssh一键部署frpc内网穿透脚本
- 更新:2023-03-22 23:05:33
- 首发:2023-03-13 23:22:16
- 源代码
- 3094
以下是实现自动安装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》。
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区
暂无内容
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了