Linux 相关配置¶
0.安装有线驱动¶
我这里使用的是Realtek 8125 的有线网卡,在官方网站上下载驱动进行安装,网址如下
https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
1.配置ssh¶
vim /etc/ssh/sshd_config
修改部分配置为如下样式
执行如下命令使配置生效
2.配置xrdp¶
// 更新一下软件包的信息
$ sudo apt update
$ sudo apt install xorgxrdp
// 此时可能会遇到报错
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
xorgxrdp : 依赖: xorg-video-abi-23
依赖: xserver-xorg-core (>= 2:1.18.99.901)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
// 安装 xserver-xorg-core 来更新版本
$ sudo apt install xserver-xorg-core
// 然后安装需要的其他组件
$ sudo apt-get install xorgxrdp xserver-xorg-input-all xorg xrdp dbus-x11 x11-xserver-utils
修改配置¶
编辑startwm.sh,设置远程连接的用户配置,类似于ssh时的全局配置/etc/profile
把最后两行注释之后加入一行 gnome-session,改好之后文件最后几行如下
这里如果修改不成功,可以回退上一步操作,然后使用如下配置

开启端口并且重启服务¶
// 开启防火墙
$ sudo apt install ufw
$ sudo ufw allow 3389
// 重启服务
$ sudo ufw restart
$ sudo service xrdp restart
至此就完成了服务器在远程桌面的配置
图标缺失的问题¶
$ sudo add-apt-repository universe
$ sudo apt install gnome-tweak-tool
// 打开 tweak 设置主题等信息
$ gnome-tweaks
在弹出的界面进行设置图标等信息就行了

4.安装kvm¶
安装虚拟机配置的工具
创建KVM Bridge¶
TODO
5.开启ftp¶
1.安装ftp软件
2.查看是否安装成功
3.查看vsftpd 运行状态
4.查看服务有没有启动
5.修改配置文件
1、参数说明:
chroot_local_user:是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的);
chroot_list_enable:是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用);
chroot_list_file:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值;
2、参数组合使用
| chroot_local_user=YES | chroot_local_user=NO | |
|---|---|---|
| chroot_list_enable=YES | 1、所有用户都被限制在其主目录下 ;2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1、所有用户都不被限制其主目录下 ; 2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制; |
| chroot_list_enable=NO | 1、所有用户都被限制在其主目录下 ;2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户; | 1、所有用户都不被限制其主目录下 ;2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户; |
6. centos 配置固定ip¶
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #设备驱动名称:
BOOTPROTO=static #注意:修改此处为静态获取IP地址:共有三种选项:
ONBOOT=yes #重启网络服务时加载此网卡的配置:
IPADDR=192.168.122.100 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.122.1 #网关
DNS1=114.114.114.114 #DNS地址设置(优选与/etc/resolv.conf配置文件)
7.配置端口映射¶
0.重置所有iptables 设置
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
1.允许数据包转发
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -A INPUT -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
#iptables -A FORWARD -i [内网网卡名称] -j ACCEPT
#iptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE
实际例子:
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -A INPUT -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -i virbr0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.122.1/24 -o enp42s0 -j MASQUERADE
本机的 9200端口映射到内网 虚拟机的9200端口
iptables -t nat -A PREROUTING -p tcp -m tcp --dport [外网端口] -j DNAT --to-destination [内网地址]:[内网端口]
iptables -t nat -A PREROUTING -d 192.168.3.70 -p tcp --dport 9200 -j DNAT --to-dest 192.168.122.100:9200
iptables -t nat -A PREROUTING -d 192.168.3.70 -p tcp --dport 9201 -j DNAT --to-dest 192.168.122.101:9200
iptables -t nat -A PREROUTING -d 192.168.3.70 -p tcp --dport 9202 -j DNAT --to-dest 192.168.122.102:9200
iptables -t nat -A PREROUTING -d 192.168.3.70 -p tcp --dport 25601 -j DNAT --to-dest 192.168.122.200:5601
内网端口映射以便连上外网
删除规则
#查看nat 表的所有规则
root@yuuri-workpc:~# iptables -L -t nat --line-numbers
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT tcp -- anywhere yuuri-workpc tcp dpt:9200 to:192.168.122.100:9200
2 DNAT tcp -- anywhere yuuri-workpc tcp dpt:9201 to:192.168.122.101:9200
3 DNAT tcp -- anywhere yuuri-workpc tcp dpt:9202 to:192.168.122.102:9200
# 含义是删除nat 表 PREROUTING 规则的第一条
iptables -t nat -D PREROUTING 1
7.1 iptables 基础概念
iptables 支持内核2.4版本以上版本。2014年1月发行的Linux内核3.13版使用nftables替代了iptables,但是仍然提供iptables命令作为兼容接口。
1.四张表分别是filter表,nat表,mangle表,raw表,security。
2.五条链,分别是
-
PREROUTING,
-
OUTPUT,
-
FORWARD,
-
INPUT,
-
POSTROUTING
3.表与链之间的关系
filter表
filter表为不指明表的情况下默认使用的表。通常用于过滤数据包,内建链包括:
-
INPUT,输入链。发往本机的数据包通过此链
-
OUTPUT,输出链。从本机发出的数据包通过此链
-
FORWARD,转发链。从本机转发的数据包通过此链
nat表
nat表用于地址转换操作。内建链包括:
-
PREROUTING,路由前链,在处理路由规则前通过此链,通常用于目的地址转换(DNAT)
-
POSTROUTING,路由后链,完成路由规则后通过此链,通常用于源地址转换(SNAT)
-
OUTPUT,输出链,类似POSTROUTING,但是处理本机发出的数据包
NAT分为源地址转换(代理上网),目的地址转换(端口映射)以及双向地址转换
目的地址转换,是一种单向的针对目标地址的映射,用于内部服务器向外部服务器提供服务的情况,与静态地址转换不同的地方在于它是单向的。外部可以主动访问内部,内部却不可以访问外部。另外可使用目的地址转换实现负载均衡的功能,即可以将一个目标地址转换为多个内部服务器地址,也可以通过端口的映射将不同的端口映射到不同的机器上
源地址转换是内网地址向外访问时发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网地址访问外部网络。
mangle表
mangle 表用于处理数据包,其和nat表的主要区别在于,nat表侧重连接而mangle表侧重每一个数据包。内建链列表如下:
-
PREROUTING
-
OUTPUT
-
FORWARD
-
INPUT
-
POSTROUTING
raw表
raw表用于处理异常,有如下两个内建链
-
PREROUTING
-
OUTPUT
系统重启后iptables规则消失
方法一:
1.使用iptables-save命令保存当前存在的规则
2.使用iptables-restore命令重新载入规则(可以此命令写入/etc/rc.local)[etc/rc.local 可认为是配置开机启动的脚本]
方法二:
使用iptables-persistent来配置
使用netfilter-persistent来更新规则
2021.7.4 遇到的问题:
1.Linux 下WIFI 驱动掉了
通过ip a查看网卡状态(或者使用ip link命令)
root@yuuri-workpc:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp42s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d8:bb:c1:0c:d7:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.70/24 brd 192.168.3.255 scope global dynamic noprefixroute enp42s0
valid_lft 85512sec preferred_lft 85512sec
3: wlo1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 84:1b:77:df:26:18 brd ff:ff:ff:ff:ff:ff
altname wlp41s0
发现 wlo1 的状态是DOWN 于是使用命令将网卡up
执行命令后提示
执行命令sudo rfkill list查看原因
root@yuuri-workpc:~# sudo rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
发现无线被soft blocked.
执行命令将blocked 解除
再次查看
root@yuuri-workpc:~# sudo rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
问题原因在于默认有线的优先级更高导致无线不能连接
2.iptables 设置端口映射后 无法正常上网,以及端口映射后本机无法访问(使用localhost),局域网内其他机器可以通过ip访问
8.ssh 远程登陆虚拟机速度慢¶
现象:从windows 或者mac 使用终端远程登陆到Linux 主机时,速度很慢或者无法登陆
解决方案:
1.在 CentOS7 中, 执行sudo vi /etc/ssh/sshd_config
2.在 vi 中, 将注释掉的 #UseDNS=yes 改为 UseDNS=no
3.重启sshd 服务
[参考资料]
[1].xRDP – How to Fix Theme issues in Ubuntu 18.04 remote session
[2].https://wangchujiang.com/linux-command/c/iptables.html (iptables命令 是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置)
[3].https://linux.die.net/man/8/iptables (iptables man page)
[4].https://segmentfault.com/a/1190000038185254 (Linux 或 Windows上实现端口映射)
[5].https://cloud.tencent.com/developer/article/1691414 你是否也被Centos下默认iptables规则坑过