Ubuntu内核更换
1.查看当前安装的内核
dpkg -l | grep linux-image
2.查看可以更新的内核版本
sudo apt-get search linux-image
3.安装新内核
sudo apt-get install linux-image-3.16.0-30-generic linux-image-extra-3.16.0-30-generic
4.更新grub引导
sudo update-grub
5.设置grub配置,就可以在开机时选择内核了,当然也可以直接选择启动的内核。
/etc/default/grub
GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false
6.重启后选择内核,进入系统后安装内核头文件
sudo apt-get install linux-headers-$(uname -r) build-essential
Ubuntu网络配置
对平时命令行配置网络进行一下总结
使用ifconfig
直接使用命令进行网卡ip、掩码的配置
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0
#将eth0的ip配置为192.168.1.2
使用网卡配置文件
编辑/etc/network/interfaces文件进行配置
#在文件中添加
auto eth0
iface eth0 inet static
address 192.168.33.2
netmask 255.255.255.0
network 192.168.33.0
boardcast 192.168.33.255
gateway 192.168.33.1
up route add default gw 192.168.33.1 # 可在网卡启动时添加路由表项
dns-nameservers 192.168.33.3
对于ubuntu Server版可直接sudo /etc/init.d/networking restart更新网卡配置。而对于ubuntu Desktop版则会发现直接重启网络服务并不会改变网卡的配置,原因是跟NetworkManager的配置产生了冲突。
# /etc/NetworkManager/NetworkManager.conf如下
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
no-auto-default=xx:xx:xx:xx:xx:xx,
[ifupdown]
managed=true
只需要在no-auto-default=后面去掉对应eth0的网卡mac,然后sudo service network-manager restart就可以更新到配置(有时候需要多试几次,所以在重启完最好查看下网卡ip等,看是否已经更新)。另外不建议修改成managed=false,毕竟对于桌面版,NetworkManager的确还是挺方便的。
后续路由配置
配置好网络地址之后,最后检查下路由表,确保能通
route -n #显示不解析的路由表
sudo route del/add default gw a.b.c.d dev eth0 #设置从eth0出且网关为a.b.c.d的默认路由
sudo route del/add -net a.b.c.d/24 dev eth0 #对a.b.c.d/24网络,从eth0口出
sudo route del/add -host a.b.c.d dev eth0 #对a.b.c.d的主机,从eth0出
vim的使用
当远程连接服务器进行代码或文本的修改时,vim就成了我的首选。以下介绍下我个人使用vim的心得。
vim安装
首先是安装vim
sudo apt-get update #一般不需要这步
sudo apt-get install vim
vim配置
vim的强大之处在于可以通过vimscript自由地配置vim,有些大神甚至将vim配置成了IDE。
vim配置文件有两个,均需自己主动创建。
- ~/.vimrc:针对当前用户
- /etc/vimrc:针对所有用户
我个人的vim配置如下:
syntax on
syntax enable
set background=dark
set nocompatible
set nu
set cursorline
filetype on
set autoindent
set smartindent
filetype indent on
set softtabstop=4
set shiftwidth=4
set smarttab
set mouse=a
set showmatch
set encoding=utf-8
基本上这样的设置已经够用了
vim使用
关于vim的四种模式就不一一介绍了,下面介绍一下vim的一些常用命令:
- 正常模式下:
- ctrl+f下翻一屏,ctrl+b上翻一屏
- ctrl+d下翻半屏,ctrl+u上翻半屏
- zz将当前行移动到屏幕中央,zt移动到屏幕顶端,zb移动到屏幕底部
- o在下方插入一行,O在上方插入一行。
- /xxx在后面的文本中查找xxx,?xxx在前面的文本中查找xxx
- n向后查找下一个,N向前查找下一个
- 缩进 >>右缩进一个shiftwidth,<<向左缩进一个shiftwidth。
- 命令模式下
- :n移动到第n行,:$移到到最后一行
- :s/old/new用new替换当前行第一个old
- :s/old/new/g用new替换当前行所有old
- :n1,n2s/old/new/g用new替换n1行到n2行的所有old
- :%s/old/new/g用new替换文件中所有的old
- :%s/^/add/g在每一行首部添加add
- :%s/$/add/g在每一行尾部添加add
- :%s/old/new/g(c|i)加c代表需要确认,加i代表忽略大小写
- :%g/pattern/command比如给:%g/^xyz/normal dd
- 可视模式:
- y复制,p在光标之后粘贴,P在光标之前粘贴。
SSH的使用
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。
反正好用就完事了。下面介绍一下SSH的使用,以下命令均在ubuntu下测试通过。
SSH的安装
虽然可以只安装SSH客户端,但还是建议同时安装SSH服务端。安装命令如下:
sudo apt-get install openssh-server #安装服务端
sudo apt-get install openssh-client #安装客户端
SSH服务端启动
如果希望别人能通过SSH连接到你的服务器,那么首先要开启sshd服务。
先检查一下是否已经开启sshd服务:
如果没开则开启sshd服务:
sudo /etc/init.d/ssh restart
SSH正向连接
正向连接的应用场景是B开启sshd服务,A使用ssh连接B。
连接命令如下:
ssh -p xxx username@ip
# p指定的是ssh连接的端口,默认是22
# username是ssh服务器的用户名
# ip是ssh服务器的ip地址
ssh twd@192.168.1.2
SSH反向连接
为什么需要反向连接呢?假设A为内网机器,B为外网机器,那么A正向连接到B是可行的,但是从B正向连接到A是不行的,因为B根本无法通过A的内网ip找到A。所以就需要反向连接:
首先在A中输入以下命令
ssh -fNTR 8888:localhost:22 user_b@ip_b #是将B主机的8888端口转发到A主机的22端口
在B主机中输入
ssh -p 8888 user_a@localhost #注意是user_a
就可以连上了。
SSH反向连接的维持
SSH是会超时关闭的。所以需要有一种方法维持隧道的连接:
安装autossh
sudo apt-get install autossh
在A中输入
autossh -p 22 -M 6777 -NR 8888:localhost:22 user_b@ip_b #-M用于监听隧道的状态
在B中输入以下命令,即可连接
ssh -p 8888 user_a@localhost #注意是user_a
SSH配置文件
SSH有很多配置选项,可以从以下文件配置:
客户端 /etc/ssh/ssh_config
服务端 /etc/ssh/sshd_config
这里简单提一个常用的配置,即通过心跳包维持ssh的连接,在sshd_config文件中添加:
ClientAliveInterval 30
ClientAliveCountMax 3
其意思就是每隔30秒由服务端向客户端发送一个心跳包,当未响应的心跳包达到3时,就断开连接。如果没有服务端权限,可在客户端设置:
TCPKeepAlive yes
ServerAliveInterval 30
其他配置就不多说了,记得配置修改后重启ssh服务:
sudo /etc/init.d/ssh restart
SSH筛选用户
可通过修改/etc/hosts.allow和/etc/hosts.deny两个文件进行修改
#在/etc/hosts.allow中添加
sshd:ALL #允许所有人连接
sshd:192.168.3.2 #允许192.168.3.2连接
在/etc/hosts.deny中也是同理,修改完成后还是要重启ssh服务。
SSH可能出现的问题
有的时候会出现连不上ssh的情况,大概有以下几种情况:
- 服务器端的sshd服务未开启(重启ssh服务即可)
- ssh访问受限,即服务器上的ssh只对部分ip开放(修改配置文件)
- 防火墙关闭了ssh的端口
针对第三种情况,直接配置iptables比较复杂,这里推荐使用ufw(uncomplicated firewall,简单防火墙)。
ufw大部分情况下只需要以下三行命令即可:
sudo apt-get install ufw
sudo ufw enable #启动防火墙
sudo ufw default deny #默认全部拒绝
需要打开ssh的22端口时:
sudo ufw allow 22
VMware Ubuntu蓝屏
今天打开VMware虚拟机突然蓝屏了,但是一开始能登录,所以估计是非正常关机损坏了虚拟机的图形化界面。
sudo apt install xserver-xorg-lts-utopic
sudo dpkg-reconfigure xserver-xorg-lts-utopic
reboot
中途可能会出现依赖不完整
sudo apt -f install