虚拟化运维笔记 —— Linux

Linux

Linux下使用Rinetd来实现端口转发

安装

centos
0、对于centos,由于官方的源中并没有Rinetd,所以首先需要第三方源
32位系统:

$ vim /etc/yum.repos.d/nux-misc.repo

[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/i386/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

64位系统:

$ vim  /etc/yum.repos.d/nux-misc.repo:

[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

1、安装Rinetd

$ yum --enablerepo=nux-misc install rinetd

Ubuntu

apt-get install rinetd

配置

端口转发的配置文件在/etc/rinetd.conf
配置文件的格式:

[bindaddress] [bindport] [connectaddress] [connectport]
绑定的地址    绑定的端口  连接的地址      连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址            源端口         目的地址               目的端口

例如:

0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
allow *.*.*.*
logfile /var/log/rinetd.log

说明

0.0.0.0表示本机绑定所有可用地址
将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
将所有发往本机2222端口的请求转发到192.168.0.103的3389端口
将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口
allow设置允许访问的ip地址信息,...表示所有IP地址
logfil设置打印的log的位置

启动程序

pkill rinetd  ##关闭进程
rinetd -c /etc/rinetd.conf  ##启动转发

把命令加到/etc/rc.local里面就可以开机自动运行

Ubuntu

默认编辑器nano

用习惯了vim编辑器,有时候想修改配置文件,可设备又没网,Ubuntu默认使用的是nano编辑器,真心不如vim好用。

ctrl+X  #退出
ctrl+O  #保存

Ubuntu设置静态ip

通过修改“/etc/network/interfaces”进行修改,
QQ图片20180625214835.png
注:在设置多个DNS服务器的时候要加“s”,如:

dns-nameservers 114.114.114.114 8.8.8.8

修改之后需要执行:

sudo /etc/init.d/networking restart

使用这个方式修改ip地址,修改完interfaces文档中的内容后,需要修改/etc/NetworkManager/NetworkManager.conf文档中的managed参数,使之为true,并重启。否则,会提示说“有线网络设备未托管”。
重启网络或系统之后就修改完成了。

安装TeamViewer

teamviewer远程登录的方式不建议使用!
1、到TeamViewer官网下载对应版本的安装包。
2、下载完成之后切换到下载目录,执行:

sudo dpkg -i teamviewer_13.0.9865_amd64.deb

版本号要根据下载的包进行更改。
这时候可能会报出如下错误:

正在选中未选择的软件包 teamviewer。 
(正在读取数据库 … 系统当前共安装有 253291 个文件和目录。) 
正准备解包 teamviewer_13.0.6634_amd64.deb … 
正在解包 teamviewer (13.0.6634) … 
dpkg:警告:无法删除原有的目录 /var/log/teamviewer12 :目录非空 
dpkg: 依赖关系问题使得 teamviewer 的配置工作不能继续: 
teamviewer 依赖于 qtdeclarative5-dialogs-plugin (>= 5.2) | qml-module-qtquick-dialogs (>= 5.2);然而: 
未安装软件包 qtdeclarative5-dialogs-plugin。 
未安装软件包 qml-module-qtquick-dialogs。 
dpkg: 处理软件包 teamviewer (–install)时出错: 
依赖关系问题 - 仍未被配置 
正在处理用于 desktop-file-utils (0.22-1ubuntu5.1) 的触发器 … 
正在处理用于 gnome-menus (3.13.3-6ubuntu3.1) 的触发器 … 
正在处理用于 bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) 的触发器 … 
Rebuilding /usr/share/applications/bamf-2.index… 
正在处理用于 mime-support (3.59ubuntu1) 的触发器 … 
正在处理用于 hicolor-icon-theme (0.15-0ubuntu1) 的触发器 … 
在处理时有错误发生: 
teamviewer

目前我遇到的有两种解决方式:
一、修复依赖关系

一种解决方法是执行如下命令修复依赖关系:

sudo apt install f

执行完后再安装看看能否成功,如果还是不成功就要采用第二种方式了。
二、更新源地址

①删除安装到一半的teamviewer:

sudo apt-get remove teamviewer

②在Ubuntu的源列表中找到对应系统的源,复制到/etc/apt/sources.list 里面,并把原来的链接注释掉。
③更新系统软件:

sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件

④运行安装命令:

sudo dpkg -i teamviewer_13.0.9865_amd64.deb

3、在TeamViewer的使用中发现经常在系统重启后连接就出现“未知原因”的问题,原因还在摸索中,目前能解决的方法就是卸载重新安装:

apt purge teamviewer
sudo dpkg -i teamviewer_13.0.9865_amd64.deb

16.04出现“The system is running in low-graphics mode”

在虚拟机中安装的Ubuntu16.04无法显示完全,尝试修改分辨率后会卡死,然后重启就会出现如题所示的错误。
解决方法为:
1、重启虚拟机,按ctrl + alt + F1 进入纯字符界面,输入账号和密码
2、执行如下命令:

cd /etc/X11
sudo cp xorg.conf.failsafe xorg.conf #刷新配置文件
sudo reboot

重启之后就可以正常显示了。

启用root用户

执行:

sudo passwd root

设置密码后即可使用su直接切换为root用户。

安装GNOME Shell桌面

1、安装GNOME Shell

sudo apt-get install gnome-shell

安装过程中出现如下界面,选择lightdm:

2、退出当前账户,选择GNOME桌面系统
3、重新登陆,安装gnome-tweak

sudo apt-get install gnome-tweak-tool

tweak是主题管理工具,具体使用方法参见:
https://itsfoss.com/install-switch-themes-gnome-shell/
4、使用tweak更换主题
方法参考:
https://itsfoss.com/gnome-shell-themes-ubuntu-1404/

执行sudo apt-get update出错

在运行sudo apt-get update时出现如下信息:

Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success
'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli;
then appstreamcli refresh > /dev/null;
fi'
E: Sub-process returned an error code

解决方法如下:

sudo pkill -KILL appstreamcli
wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb

或者:

apt show appstream
sudo apt remove appstream

Ubuntu在虚拟机中显示不全的问题

关于这个问题之前也是尝试了无数的方法,今天无意间明白了原因并解决了问题。
1、首先要明白的是不是随便一个分辨率都可以更改,首先执行以下命令查询当前的显示状态:

xrandr


其中第一个带*的就是当前的分辨率,其下的数值是我们可以更改的分辨率,每个虚拟机可能略有不同。
2、执行:

xrandr -s 1440x900_59.9

即可将分辨率设置为1440x900。
3、上述命令只能临时修改,永久修改需要执行:

xrandr --output Virtual1 --mode 1440x900

其中“Virtual1”是显示器的名称,要根据执行xrandr返回的信息进行相应的替换。
4、错误
这些也是我自己遇到的一点问题。

①有时候执行步骤3中所说的命令并不能永久更改,重启后会失效。目前一个方法就是在系统设置→显示中应用一下更改过来的分辨率,这样在重启之后就不会出现问题了。
②“xrandr: Configure crtc 0 failed”

这是一个系统bug,在设置,关于这台计算机,检查更新。更新完重启后就没问题了。

Ubuntu16.04安装VNC

“VNC有很多选择,VNC4server,tigervncserver等等,都不推荐,难装又难用。经过多次实验和测试,最后只采用x11vnc作为VNC服务器端。” 查看原文
1、安装X11VNC

sudo apt install x11vnc -y

2、配置访问密码

sudo x11vnc -storepasswd /etc/x11vnc.pass 

3、创建服务

vi  /lib/systemd/system/x11vnc.service

粘贴如下代码:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

4、配置防火墙,配置并启动服务

sudo ufw allow 5900
sudo systemctl enable x11vnc.service
sudo systemctl daemon-reload

如果出现如下图所示的错误,就说明第三步中你的配置信息粘贴错误了,修改正确即可解决。QQ图片20180630142539.jpg
5、重启系统

reboot

Ubuntu14.04安装VNC

1、安装X11VNC

sudo apt install x11vnc -y

2、配置访问密码

sudo x11vnc -storepasswd /etc/x11vnc.pass 

3、创建配置文件

sudo touch /etc/init/x11vnc.conf

4、赋予权限

sudo chmod a+w /etc/init/x11vnc.conf

5、在配置文件中加入以下内容:

start on login-session-start
script 
x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900 
end script 

6、重启

reboot

nat123配置

nat123端口映射是专业的内网端口映射软件,在内网启动映射后,可在外网轻松访问连接内网网站等应用,不需要设置路由器,不需要公网ip,不需要固定ip,不需要动态域名。

Ubuntu配置过程:(其它linux直接参考官网说明
0、注册账号
没有注册过账号的先到官网注册:http://www.nat123.com/
1、安装mono运行环境

apt-get  install  mono-complete

安装完成后执行“mono -V”可查看安装的版本信息。
2、客户端安装

cd  /opt
mkdir  nat123
cd  /nat123
wget  http://www.nat123.com/down/nat123linux.tar.gz
tar  -zxvf  nat123linux.tar.gz

3、启动客户端

cd  /opt/nat123
mono  nat123linux.sh

输入用户名和密码登录成功后,直接结束当前进程,然后执行如下命令改为后台运行:

cd  /opt/nat123
mono  nat123linux.sh service &
ps  -ef|grep  nat123 #查看nat123状态

4、登录网页添加端口映射或动态域名解析

RHEL

系统意外重启后VNC连接失败

在服务器中运行着几个RHEL实例,VNC是之前老师配置的,这几个实例在服务器断电重启之后会出现VNC连接出错的问题。解决方法如下:

cd /tmp
rm -rvf .X11-unix #手动删除因为VNC非正常退出未删除的文件
vncserver :3 #重启服务

RHEL7设置开机自动连接网络

前几天在服务器上新装了一个RHEL7的虚拟机,不知道是不是镜像的原因,虚拟机默认设置是开机后网络连接处于断开状态,查了一下只需要修改一个配置参数即可。

进入“/etc/sysconfig/network-scripts”目录,编辑“ifcfg-en”开头的文件:

01.png
在文件中找到“ONBOOT”选项,将原来的“no”改为“yes”即可。

02.png

CentOS

修改时区

CentOS 6:

date -R #查看时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区

CentOS 7:

timedatectl set-timezone Asia/Shanghai