Lenny-Hu / note

blog
5 stars 1 forks source link

centos ss 搭建 #57

Open Lenny-Hu opened 5 years ago

Lenny-Hu commented 5 years ago

一键安装python版本ss

#!/bin/bash
# Install Shadowsocks on CentOS 7

echo "Installing Shadowsocks..."

random-string()
{
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1
}

CONFIG_FILE=/etc/shadowsocks.json
SERVICE_FILE=/etc/systemd/system/shadowsocks.service
SS_PASSWORD=$(random-string 32)
SS_PORT=8388
SS_METHOD=aes-256-cfb
SS_IP=`ip route get 1 | awk '{print $NF;exit}'`
GET_PIP_FILE=/tmp/get-pip.py

# install pip
curl "https://bootstrap.pypa.io/get-pip.py" -o "${GET_PIP_FILE}"
python ${GET_PIP_FILE}

# install shadowsocks
pip install --upgrade pip
pip install shadowsocks

# create shadowsocls config
cat <<EOF | sudo tee ${CONFIG_FILE}
{
  "server": "0.0.0.0",
  "server_port": ${SS_PORT},
  "password": "${SS_PASSWORD}",
  "method": "${SS_METHOD}"
}
EOF

# create service
cat <<EOF | sudo tee ${SERVICE_FILE}
[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c ${CONFIG_FILE}

[Install]
WantedBy=multi-user.target
EOF

# start service
systemctl enable shadowsocks
systemctl start shadowsocks

# view service status
sleep 5
systemctl status shadowsocks -l

echo "================================"
echo ""
echo "Congratulations! Shadowsocks has been installed on your system."
echo "You shadowsocks connection info:"
echo "--------------------------------"
echo "server:      ${SS_IP}"
echo "server_port: ${SS_PORT}"
echo "password:    ${SS_PASSWORD}"
echo "method:      ${SS_METHOD}"
echo "--------------------------------"

开放端口,重启防火墙

我们可以输入命令查看防火墙的状态;

firewall-cmd --state

running 状态即防火墙已经开启

如果上一步处于关闭状态,输入命令:

systemctl start firewalld.service

比如我们需要开启8080端口,输入命令:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

--zone=public:表示作用域为公共的;--add-port=8080/tcp:添加tcp协议的端口8080;--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;

输入命令重启防火墙;

systemctl restart firewalld.service

输入命令重新载入配置

firewall-cmd --reload

以上就是centos7开放8080端口的方法,开放其他端口道理是一样的。

若移除端口 : firewall-cmd --permanent --remove-port=666/tcp 查看想开的端口是否已开 # firewall-cmd --query-port=666/tcp 提示no表示未开

Lenny-Hu commented 5 years ago

https://blog.51cto.com/zero01/2064660