分类 技术 下的文章

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

KCPTun地址

KCPTun安装

# 新建kcptun文件夹
mkdir /root/kcptun

# 进入kcptun文件夹
cd /root/kcptun

# 根据服务器架构下载最新kcptun文件
wget https://github.com/xtaci/kcptun/releases/download/v20201126/kcptun-linux-amd64-20201126.tar.gz

# 解压文件
tar -zxvf kcptun-linux-amd64-20201126.tar.gz

解压之后会发现只有两个文件:

client_linux_amd64server_linux_amd64

第一个是是客户端文件,第二个是服务端文件。

目前 KCPTun 没有启动脚本,所以需要新建脚本。

# 创建 start.sh
vi /root/kcptun/start.sh

输入以下内容:

#!/bin/bash
cd /root/kcptun/
./server_linux_amd64 -c /root/kcptun/server-config.json 2>&1 &
echo "Kcptun started."
# server_linux_amd64 对应服务端文件名,请对应修改。
# 创建配置文件
vi /root/kcptun/server-config.json

输入以下内容:

{
  "listen": ":32143",
  "target": "127.0.0.1:23546",
  "key": "password",
  "crypt": "none",
  "mode": "fast2",
  "mtu": 1350,
  "sndwnd": 1024,
  "rcvwnd": 1024,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 46,
  "nocomp": false,
  "log": "/root/kcptun/kcptun.log"
}
# 创建 stop.sh
vi /root/kcptun/stop.sh

输入以下内容:

#!/bin/bash
PID=`ps -ef | grep server_linux_amd64 | grep -v grep | awk '{print $2}'`
if [ "" != "$PID" ]; then
 echo "killing $PID"
 kill -9 $PID
 echo "Kcptun started."
else
 echo "Kcptun not running!"
fi
# 创建 restart.sh
vi /root/kcptun/restart.sh

输入以下内容:

#!/bin/bash
cd /root/kcptun/
echo "Stopping Kcptun..."
bash stop.sh
bash start.sh
echo "Kcptun restart succeed !"

给以上几个创建的脚本添加执行权限:

chmod +x /root/kcptun/*.sh

日志文件在:/root/kcptun/kcptun.log

# 启动kcptun
sh /root/kcptun/start.sh

# 停止kcptun
sh /root/kcptun/stop.sh

# 重启kcptun
sh /root/kcptun/restart.sh

添加开机启动:

# Centos 系统:
chmod +x /etc/rc.d/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.d/rc.local

# Ubuntu/Debian 系统:
chmod +x /etc/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.local

执行后会添加到末尾但是会在exit 0后面,造成开机并不能自启,此时需要手动修改文件。

注意: Debian9+ / Ubuntu17+ 默认不带有 /etc/rc.local 文件,但是rc.local文件依然存在,此方法添加的开机启动则无效。

lxde-vnc-2.png

Debian, Ubuntu 安装LXDE、TightVncServer教程。

LXDE是一款非常轻量级的Linux桌面环境,小巧而高效,适合低配VPS小鸡安装,推荐内存512M及以上;TightVNC是一个跨平台自由和开放源码远程桌面软件应用程序,允许用户可以远端控制另一台电脑上的屏幕。

一、安装LXDE和VNC

升级Debian或Ubantu系统

apt-get update
apt-get upgrade

遇到是否继续安装的提示,输入Y即可,如果出现图形界面,按下回车继续即可;

安装LXDE + TightVncServer桌面环境

apt-get install xorg lxde-core tightvncserver

遇到是否继续安装的提示,输入Y即可

启动、停止VNC桌面

# 启动VPC
tightvncserver :1

第一次启动VNC,你需要设置VNC密码,根据输入两次密码;

随后会出现:

Would you like to enter a view-only password (y/n)?

的提示,这是为“只查看屏幕”这一功能所单独设置的密码,输入N按回车键即可,我们这里不单独需要这一功能。

# 停止VNC
tightvncserver -kill :1

利用vi编辑器,打开并编辑VNC配置

# 编辑VNC配置文件
vi ~/.vnc/xstartup

将下面的代码粘贴到文件的最后:

lxterminal &
/usr/bin/lxsession -s LXDE &

输入 :wq 保存并退出。

重启VPS,启动VNC

# 重启VPS
reboot

重新登录ssh,启动VNC服务,下面的命令指定了1024x768的VNC分辨率,你可以自行修改:

vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565

分辨率可以自己改为:

1280x720

1600x900

1920x1080

二、连接VNC

安装 realvnc

我这里自己的电脑用的Windows,Windows连接VNC先要安装VNC客户端软件;

我推荐使用 realvnc ,下载地址:https://www.realvnc.com/en/connect/download/viewer/

使用realvnc连接VNC

下载安装后,打开,添加一个要连接的服务器,地址格式为

192.168.1.100::5901

端口默认为5901,记得防火墙放行5901。

image-8.png

点击Connect,在对话框中输入vnc密码进行登录,登录成功后,出现经典的LXDE桌面;

LXDE.jpg

三、安装火狐Firefox浏览器

apt-get install firefox-esr

如果运行此命令提示找不到软件包,则运行以下命令:

apt-get install software-properties-common
add-apt-repository ppa:mozillateam/ppa
apt-get update
apt install firefox-esr

安装完成后,就可以在LXDE桌面中运行了。

lxdefirefox.jpg

四、安装简体中文语言

安装中文环境(不保证中文输入法可用)

apt install xfonts-wqy ttf-arphic-uming fcitx

vi /etc/default/locale
# 修改为以下内容
  LANG=en_US.UTF-8
  LC_CTYPE=zh_CN.UTF-8

重配置locales,

dpkg-reconfigure locales

# 空格进行选择,选择以下语言编码
en_US.ISO8859_1
en_US.UTF-8
zh_CN.GBK
zh_CN.UTF-8

最后选择 zh_CN.UTF-8 语言编码

重启查看效果

五、VNC 开机自启

我们将 VNC 服务器设置为 systemd 服务,以便我们可以像任何其他服务一样根据需要启动、停止和重新启动它。

vi /etc/systemd/system/vncserver@.service

@名称末尾的符号将让我们传入一个可以在服务配置中使用的参数。我们将使用它来指定我们在管理服务时要使用的 VNC 显示端口。

将以下行添加到文件中。请务必更改User、Group、WorkingDirectory的值以及PIDFILE值中的用户名以匹配您的用户名:

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 16 -geometry 1280x720 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

如果你是 root 用户,则直接使用下面的配置

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=root
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 16 -geometry 1280x720 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable vncserver@1.service
systemctl start vncserver@1

# 查看 vnc 运行状态
systemctl status vncserver@1

显示以下运行状态:

● vncserver@1.service - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-11-11 17:58:38 HKT; 5min ago
  Process: 14957 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
  Process: 14961 ExecStart=/usr/bin/vncserver -depth 16 -geometry 1280x720 :1 (code=exited, status=0/SUCCESS)
 Main PID: 14970 (Xtightvnc)
    Tasks: 37 (limit: 2167)
   Memory: 95.6M