2020年12月

JDK 8 内存参数:

-XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m

先创建基本的start、stop、restart脚本:

jarStart.sh脚本:

#!/bin/sh
nohup java -jar /root/myjar-1.0.1-SNAPSHOT.jar > myjar.log 2>&1 &
echo Start Success!

jarStop.sh脚本:

#!/bin/sh
PID=`ps -ef | grep java | grep -v grep | awk '{print $2}'`
if [ "" != "$PID" ]; then
 echo "killing $PID"
 kill -9 $PID
 echo "Java stoped."
else
 echo "Java not running!"
fi

jarRestart.sh脚本:

#!/bin/sh
PID=`ps -ef | grep java | grep -v grep | awk '{print $2}'`
if [ "" != "$PID" ]; then
 echo "killing $PID"
 kill -9 $PID
 echo "Java stoped."
else
 echo "Java not running!"
fi
nohup java -jar /root/myjar-1.0.1-SNAPSHOT.jar > myjar.log 2>&1 &
echo $! > tpid
echo Start Success!

赋予以上sh脚本权限:

chmod +x *.sh

新建开机自启动service脚本,以myjar.service命名:

cd /usr/lib/systemd/system
vi myjar.service

输入以下内容;(start、stop、restart脚本路径要根据自己情况更改)

[Unit]
Description=myjar
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/root/jarStart.sh
ExecReload=/root/jarRestart.sh
ExecStop=/root/jarStop.sh
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target

赋予777权限:

chmod 777 myjar.service

设置service脚本开机自启动:

systemctl enable myjar.service

其他命令:

# 启动
systemctl start myjar
# 查看运行状态
systemctl status myjar
# 停止
systemctl stop myjar

# 加入开机自启
systemctl enable myjar
# 取消开机自启
systemctl disable myjar
# 判断服务是否处于开机自启状态,输出enabled即代表开机自启
systemctl is-enabled myjar

iptables基本命令

# 查看规则列表
iptables -L -n

# 放行指定端口:22
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 放行IP:123.123.56.50
iptables -A INPUT -s 123.123.56.50 -j ACCEPT

新建脚本 ipt.sh

vi ipt.sh

Debian Ubuntu 脚本内容

# 清空所有默认规则
iptables -F
# 清空所有自定义规则
iptables -X
# 所有计数器归0
iptables -Z
# 重新设置iptables
# 设置iptables白名单开始
# 允许icmp
iptables -A INPUT -p icmp -j ACCEPT
# 放行端口:8080
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 放行IP:123.123.56.56
iptables -A INPUT -s 123.123.56.56 -j ACCEPT
# 禁止其他不匹配的规则访问本机
iptables -P INPUT DROP
#配置写入文件,重启也生效。
modprobe ip_tables
iptables-save > /etc/iptables.up.rules

CentOS 脚本内容

# 清空所有默认规则
iptables -F
# 清空所有自定义规则
iptables -X
# 所有计数器归0
iptables -Z
# 重新设置iptables
# 设置iptables白名单开始
# 允许icmp
iptables -A INPUT -p icmp -j ACCEPT
# 放行端口:8080
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 放行IP:123.123.56.56
iptables -A INPUT -s 123.123.56.56 -j ACCEPT
# 禁止其他不匹配的规则访问本机
iptables -P INPUT DROP
#配置写入文件,重启也生效。
service iptables save
#重启iptables服务
systemctl restart iptables.service

Debian Ubuntu 配置重启不失效

iptables 规则设置后都是即时生效的,在机器重启后,一般情况下 iptables 中的配置信息会被清空。
通过下面教程的方式,可以做到重启规则不失效。

先将防火墙规则保存到/etc/iptables.up.rules文件中:

iptables-save > /etc/iptables.up.rules

然后修改脚本/etc/network/interfaces,在末尾添加一行,在网络启动时应用防火墙规则。

# vi编辑命令
vi /etc/network/interfaces

# 在最后 添加下面一行
pre-up iptables-restore < /etc/iptables.up.rules


# 重启测试
reboot

CentOS 7 卸载firewalld防火墙

systemctl disable firewalld
systemctl stop firewalld
systemctl mask firewalld
systemctl disable firewalld.service

CentOS 7 安装iptables防火墙

yum install iptables -y
yum install iptables-services -y
systemctl enable iptables
systemctl enable iptables.service

firewalld常用基本命令

# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除8080端口
firewall-cmd --permanent --remove-port=8080/tcp
#查看开放端口
firewall-cmd --zone=public --list-ports

firewalld白名单模式

本次示例,是先设置trusted域的规则,然后将默认区域从public切换到drop。

# 给trusted域,添加IP白名单,单个ip或者ip段
firewall-cmd --permanent --zone=trusted --add-source=123.123.56.0/24
firewall-cmd --permanent --zone=trusted --add-source=123.123.56.56
firewall-cmd --reload
# 确认是否设置正确
firewall-cmd --zone=trusted --list-all
# 切换默认区域从 public 到 drop
firewall-cmd --set-default-zone=drop
# 将默认网卡 eth0 分配给 drop 区域
firewall-cmd --permanent --zone=drop --change-interface=eth0
# 使白名单生效
firewall-cmd --reload

# 查看trusted域的规则
firewall-cmd --list-all --zone=trusted
# trusted域,从白名单删除ip
firewall-cmd --permanent --remove-source=123.123.56.56 --zone=trusted

firewalld设置端口只允许白名单ip访问

# 切换到trusted域
firewall-cmd --set-default-zone=trusted

新建一个zone,起名newzone,将想要访问本机22端口的ip,如:123.123.123.123等,添加的这个zone中,同时在这个zone中放行22端口:

firewall-cmd --permanent --new-zone=newzone
firewall-cmd --permanent --zone=newzone --add-source=123.123.123.123
firewall-cmd --permanent --zone=newzone --add-source=123.123.56.56
firewall-cmd --permanent --zone=newzone --add-port=22/tcp

除123.123.123.123、123.123.56.56这个俩ip,其他ip地址访问本机时会使用当前默认的trusted这个zone里的规则,即禁止访问本机的22端口:

firewall-cmd --permanent --zone=trusted --add-rich-rule="rule family="ipv4" port protocol="tcp" port="22" drop"

重启firewalld:

systemctl restart firewalld

查看firewalld配置规则是否生效:

firewall-cmd --list-all-zone
firewall-cmd --list-all

注意: 最新版本的SS-Rust在CentOS 7会报glibc版本过低的错,不推荐使用CentOS 7;

# CentOS 7 查看glibc版本
strings /lib64/libc.so.6 | grep GLIBC_

下载shadowsocks-rust

# 下载压缩包
cd /usr/local/bin/

wget https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.11.0/shadowsocks-v1.11.0.x86_64-unknown-linux-gnu.tar.xz

# 解压缩(名字太长,可以用Tab键补全)
xz -d shadowsocks-v1.11.0.x86_64-unknown-linux-gnu.tar.xz && tar -xf shadowsocks-v1.11.0.x86_64-unknown-linux-gnu.tar

# 修改所有者
chown root.root ./ss*

创建配置文件config.json

# 创建目录
mkdir /etc/shadowsocks-rust && cd /etc/shadowsocks-rust

vim config.json

# 配置内容
{
"server": "0.0.0.0",
"server_port": 59876,
"timeout": 60,
"method": "aes-128-gcm",
"password": "1a2b3c",
"fast_open": false,
"nameserver": "dns.google",
"mode": "tcp_and_udp"
}

验证是否能够启动

# 临时运行,检测ss是否能够启动
/usr/local/bin/ssserver -c /etc/shadowsocks-rust/config.json

如果遇到的报错是glibc版本低于2.18,自行编译升级glibc即可(高风险):

升级过程 略

没有报错的话,继续创建服务程序;

创建服务文件service

# 切换路径
cd /etc/systemd/system/ && vim ssrust.service

# 内容
[Unit]
Description=Shadowsocks-Rust Service
After=network.target

[Service]
Type=simple
User=nobody
Group=nogroup
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks-rust/config.json

[Install]
WantedBy=multi-user.target

配置systemd

cd /etc/systemd/system/

systemctl daemon-reload

systemctl start ssrust //启动

systemctl stop ssrust //停止

systemctl enable ssrust //加入开机自启

systemctl disable ssrust //取消开机自启

systemctl is-enabled ssrust //判断服务是否处于开机自启状态,输出enabled即代表开机自启
本文部分内容转自:https://shiping.date/archives/35.html

shadowsocks一键脚本来自秋水逸冰,安装完成后会加入开机自启动。

CentOS系统

# 安装
wget --no-check-certificate -O shadowsocks-libev.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh && chmod +x shadowsocks-libev.sh && ./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log

# 卸载
./shadowsocks-libev.sh uninstall

Debian、Ubuntu系统

# 安装
wget --no-check-certificate -O shadowsocks-libev-debian.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian.sh && chmod +x shadowsocks-libev-debian.sh && ./shadowsocks-libev-debian.sh 2>&1 | tee shadowsocks-libev-debian.log

# 卸载
./shadowsocks-libev-debian.sh uninstall

SS配置文件目录

/etc/shadowsocks-libev/config.json

SS使用命令

# 启动:
/etc/init.d/shadowsocks start

# 停止:
/etc/init.d/shadowsocks stop

# 重启:
/etc/init.d/shadowsocks restart

# 查看状态:
/etc/init.d/shadowsocks status