标签: Ubuntu

Ubuntu dpkg:警告:无法找到软件包”xxx”的文件名列表文件.. -解决办法

*近,纠结了好久在ubuntu server 上 出现的 一大批“ dpkg:警告:无法找到软件包 XXXX 问题” 终于解决了!

先来讲讲 这个问题是咋出来的

一.由于前段时间想安装一个vsftpd+ldap在服务器上,google了各种安装配置方法,没装成功!

因为多次尝试,使用了各种apt-get install  +apt-get remove ,结果就导致出现了 一些“pkg:警告:无法找到软件包 XXXX ” 问题

当时,警告还是很少的 也就是提示无法找到的包不多,渐渐地,服务器装的东西多了,这个问题就越来越明显

 

于是求google 大师,找各种答案  其中:

1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old              //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info                                               //再新建一个新的info文件夹
3.$ sudo apt-get update, apt-get -f install
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old           //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info                                             //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info           //把以前的info文件夹重新改回名字

被我尝试多次,依然会出现那个问题!

其实这里 我们可以发现为什么会在安装新的内容时会出现无法找到软件包问题,因为在apt-get install 安装一个新包时 先回去检查/var/lib/dpkg/info/目录下的已安装包的配置文件信息;如果发现有已经安装的应用 的配置文件信息不在info目录下 就会提示这个错误

所以这个时候我们 可以通过:sudo dpkg –configure -a

然后通过:dpkg -l | grep ^ii | awk ‘{print $2}’ | grep -v XXX | xargs sudo aptitude reinstall

重新获取包内容配置信息 ,这样一步步重新安装下去 很快就可以解决这个问题了

二.当然也还有第二种方法,那就是通过:sudo apt-get –reinstall install `dpkg –get-selections | grep ‘[[:space:]]install’ | cut -f1`

来重新安装全部软件,会全部刷新info目录 不过这个方法就要多花点时间去等了

原地址:http://blog.csdn.net/wise622453/article/details/7905253

希望你能尽快解决问题

Ubuntu linux 关机、重启、注销 命令

1关机命令 shutdown

好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。

1)shutdown –help

可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。

2) shutdown -h now 现在立即关机

3)shutdown -r now 现在立即重启

4)shutdown -r +3 三分钟后重启

5)shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机

6)shutdown -r 20:23 在20:23时将重启计算机

7)shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端

2中断命令

1)执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令

2)kill 程序编码

当命令在后台执行时系统会返回一个程序编码,例如:在使用 shutdown -r 20:23 & 系统返回系统编码:4905

我们可以使用kill 4905来中止重启命令

3ps aux | grep 程序编号

我们如果知道程序的编号,我们可以使用ps aux |grep 程序编号来查询该程序编号对应的命令是什么。

例如上面的程序编号为4905 ,我们可以使用ps aux | grep 4905 就可以查到 shutdown -r 20:23 & 的命令

halt—-*简单的关机命令

其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

参数说明:

[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。

[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

[-f] 没有调用shutdown而强制关机或重启。

[-i] 关机〔或重启〕前﹐关掉所有的网络接口。

[-p] 该选项为缺省选项。就是关机时调用poweroff。

init

init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

注销系统的logout命令

Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:

[root@localhost root]#logout

Red Hat Linuxrelease 9(Shike)

Kernel 2.4.20.8 on an i686

Login: ← 回到登陆的画面

ubuntu创建新用户并设置samba服务

1.新建自己的用户并查看
sudo useradd -m -s /bin/bash 用户名
sudo passwd 用户名
ls /home -t

或者:

#1创建一个新的普通用户:(-m:表示用户,-s表示shell环境)
sudo useradd -m guest -s /bin/bash
#2.新普通用户设置密码,请按系统提示输入两次密码:
sudo passwd guest
#3.可为普通用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题
sudo adduser guest sudo
#4.用户从root用户切换到普通用户,命令如下:
su guest

2.给新用户添加sudo权限
sudo vim /etc/sudoers
#找到:root ALL=(ALL:ALL)ALL
#添加: 用户名 ALL=(ALL:ALL)ALL

3.删除用户:
执行userdel命令:sudo userdel 用户名
删除用户目录命令:sudo rm -rf 用户名
删除用户权限相关配置:删除或者注释掉/etc/sudoers中关于要删除用户的配置,否则无法再次创建同名用户。
4.samba共享的设置 可以让windows访问linux系统的共享文件
安装:sudo apt-get install samba
修改配置文件:sudo vim /etc/samba/smb.conf
[test] #自定义共享名称
comment = This is share software #共享描述
path = /home/testfile #共享目录路径
available = yes
browseable = yes #设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
public = no #设置共享是否允许guest账户访问
writeable = yes  #设置共享是否具有可写权限
guest = no #功能同public 一样
force user = test
force group = test
create mask = 0777 #创建的文件目录为 777
directory mask = 0777 #创建的文件目录为 777

5.添加访问共享用户并设置共享密码:sudo smbpasswd -a 用户名
6.重启samba服务:sudo service smbd restart
7.完成以上可通过\\ip访问你服务器文件

ubuntu命令行添加拥有管理员权限新用户

*近买了个服务器,只有一个root用户,天天登录挺不方便的,所以想要新建用户;之前在本地都是用界面话新建的用户,这次记录一下学习命令行新建用户的过程:

*步 :

# sudo adduser zhq  这个zhq是你自己定义的用户名

接下类会出现一系列的输入信息,只要在有UNIX密码的地方输入 该用户的密码就行,然后再确认一次;

后面就是一路回车了. 然后用户就建好了。

但是此时该用户是不能sudo的,也就是不能使用管理员权限;接下里进行第二步

第二步:

# sudo vim /etc/sudoers

修改文件部分如下:

# User privilege specification
root ALL=(ALL:ALL) ALL
zhq ALL=(ALL:ALL) ALL (我自己仿照root添加的,其中zhq是我的用户名)

 

也有的是这样写的:

root ALL=(ALL) ALL

仿照root着添加就行了

保存退出,zhq用户就拥有了root权限。可以使用sudo了

Ubuntu添加新用户并增加管理员权限

$是普通管员
#是系统管理员
在Ubuntu下,root用户默认没有密码,因此无法使用。需要用root的话,就需要给root用户设置一个密码:sudo passwd root

  1. 添加新用户
    sudo su 进root
    sudo adduser xxx ,添加新用户

输入密码后,出现如下信息:

正在添加用户”xxx”…
正在添加新组”xxx” (1003)…
正在添加新用户”xxx” (1003) 到组”xxx”…
创建主目录”/home/xxx”…
正在从”/etc/skel”复制文件…
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 xxx 的用户信息
请输入新值,或直接敲回车以使用默认值
全名 [ ]:
房间号码 [ ]:
工作电话 [ ]:
家庭电话 [ ]:
其它 [ ]:
这些信息是否正确? [Y/n] y

到这里,新用户添加成功。

  1. 增加管理员权限
    如果需要让此用户有root权限,执行命令:

sudo vim /etc/sudoers

修改文件,添加:
xxx ALL=(ALL:ALL) ALL

下面就是更改端口号,禁止root登陆
二, 禁止root远程登录

1.需要编辑/etc/ssh/sshd_config。

  1. vim /etc/ssh/sshd_config 找到 PermitRootLogin 改为 PermitRootLogin no

3.重启 service sshd restart

三, 修改Linux登录端口

  1. 修改sshd_config

    vim /etc/ssh/sshd_config

  2. 在port后面添加端口即可,这些端口都是并列的,添加后如下
    Port 22

    Port 443

  3. 重启ssh服务
    sudo service ssh restart

ubuntu 普通用户改为管理员模式方法

su root //提示输入密码,如果有密码输入即可,否则如下

在普通用户下输入

sudo password root

之后设置root密码

进行校对

su

设置完成

///

ubuntu安装系统时不能设置root密码

可使用命令sudo su切换到root(前提是当前用户在sudoers里)

从root用户切换到普通用户

方法1:输入命令exit  回车后回到普通用户

方法2:CTRL+D直接跳出root

ubuntu 作为服务器,创建新用户,并设置为管理员权限

前提准备:

使用 Xshell 远程登录 ubuntu 服务器

创建新用户:非root

1、在root 用户下运行下命令,创建一个新用户,tamir

$  useradd  -m  -s  /bin/bash   tamir

2、将新用户加入超级管理员组

$  usermod   -a   -G   sudo  tamir

3、为新用户设置密码

输入密码时,没有字符提示,正常输入即可

4、切换新用户

$  su  –   tamir

5、切换成功,@前是新用户名,而不是root

Ubuntu搭建DNS服务器

前言

其实在我们没有安装DNS服务之前,可以将/etc/hosts文件比作一个DNS服务配置文件,因为它实现和DNS类似。

之所以会独立出DNS服务,是因为因特网主机多,如果每个主机都靠/etc/hosts文件来维护主机名到ip的映射,那么工作量非常大,对本地更新、网络资源占用都很浪费,所以出现了DNS。

相关文件

/etc/host 本地的一个小”DNS”文件。

/etc/resolv.conf 用来指定DNS服务的地址,在没有自定义DNS地址时,发现其指向本机。如下:

root@jammg:/etc/bind# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
#nameserver 192.168.1.115

nameserver 127.0.0.1

所以,此时主机查找域名时或许是根据本地/etc/hosts.
/etc/host.conf 指定主机找哪个DNS解析的顺序.如下:

root@jammg:/etc/bind# cat /etc/host.conf
# The “order” line is only used by old versions of the C library.
order hosts,bind
multi on

所以,是先在本地搜索(hosts),然后再用bind指定的DNS区找(相关的查找信息在/etc/bind目录中)。

配置
Ubuntu15.10默认没有安装DNS 相关daemon,其中BIND是提供DNS服务的软件,安装:

#apt-get install bind9

那么,在/etc/bind下就有了DNS服务的相关配置文件,而named则是DNS服务主程序,在/usr/sbin目录下。

先来介绍一下/etc/bind目录下的文件:

root@jammg:/etc/bind# ls -la
总用量 68
drwxr-sr-x 2 root bind 4096 3月 31 11:45 .
drwxr-xr-x 150 root root 12288 3月 31 15:40 ..
-rw-r–r– 1 root root 2389 3月 8 22:59 bind.keys
-rw-r–r– 1 root root 237 3月 8 22:59 db.0
-rw-r–r– 1 root root 271 3月 8 22:59 db.127
-rw-r–r– 1 root root 237 3月 8 22:59 db.255
-rw-r–r– 1 root root 353 3月 8 22:59 db.empty
-rw-r–r– 1 root root 270 3月 8 22:59 db.local
-rw-r–r– 1 root root 3048 3月 8 22:59 db.root
-rw-r–r– 1 root bind 463 3月 8 22:59 named.conf
-rw-r–r– 1 root bind 490 3月 8 22:59 named.conf.default-zones
-rw-r–r– 1 root bind 165 3月 8 22:59 named.conf.local
-rw-r–r– 1 root bind 890 3月 31 00:28 named.conf.options
-rw-r—– 1 bind bind 77 3月 31 00:28 rndc.key
-rw-r–r– 1 root root 1317 3月 8 22:59 zones.rfc1918

其中,主要的是named.conf文件,它包括了DNS的重要配置信息,它有下面三个文件组成:
named.conf.default-zones
named.conf.local
named.conf.options

①named.conf.default-zones

包含了反解文件:db.0 db.127 正解文件:db.root db.local.

指定了DNS查找的配置信息,如db.local:

root@jammg:/etc/bind# cat db.local
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1

@代表域名,在这里是local.(有个点)。
另外,db.root 包含了*顶层的域名和对应的地址,所有有需要的DNS都可以从这些地址得到其它域名的地址信息。

②named.conf.local暂时没用到

③named.conf.options

包含了一些设置信息,如设置为cache-only DNS,添加forwarding功能等。

测试
#dig +trace www.google.com @127.0.0.1

后面的@server就是指定使用本主机配置的DNS服务,如果返回如下信息则说明配置成功了。
www.google.com. 300 IN A 216.58.197.100
*次时,它是通过去找db.root配置文件的*顶层域名,由上到下一层层往下找到www.google.com的;第二次如果缓存还没过期则只需从本地获取结果。

关闭服务

#/etc/init.d/bind9 stop
还是关了本地的dns上网快点,毕竟目前只有*顶层的域名ip,要一层层找下来。

CentOS 与 Ubuntu:哪个更适合做服务器?

CentOS 与 Ubuntu:哪个更适合做服务器?

 

已经决定买一台虚拟服务器,但还不能决定使用哪个 Linux 发行版?我们都经历过这种困扰。对于 Linux 发行版来说,要在这么多的发行版和种种支派flavors中选择一个,那简直能让人崩溃。不过,对于服务器而言,有两个主流的 Linux 发行版,那就是 CentOS 和 Ubuntu。但如何从这两个之中选择,这是摆在管理员、初学者和专业人士面前的主要问题。在对这两个(和更多)发行版有了一定的经验之后,我们决定对这两个发行版用于服务器时做个比较。

利益相关:本文译自 thishosting.rocks,根据国内情况替换了相应推荐的云服务商。

概览

%title插图%num

哪个更适合新手?

Ubuntu。

一如往常那样,它主要取决于你的需求和以前的经验,但一般来说,Ubuntu 对于初学者来说是更好的选择。主要是因为这两个原因:

  • Ubuntu 有一个庞大的社区,随时可以免费提供帮助。我指的是真正的大。数以千计的用户分布在数百个不同的在线论坛和兴趣组内。甚至有现实生活中的大会。你也可以为 CentOS 找到很多教程和帮助,特别是对于简单的 LAMP 栈和流行的应用程序而言。
  • Ubuntu 服务器对于以前使用过 Ubuntu 桌面的人来说会容易得多。同样的情况也存在于 CentOS 和 Fedora 之间,但是 Ubuntu 桌面版比任何其他基于 Linux 的家用桌面更受欢迎。

所以,如果你是一个初学者,而且没有任何特殊要求,那就去使用 Ubuntu 服务器。 更好的是,你可以从一个便宜的托管服务提供商那购买服务,这样你就可以在你的服务器上进行实验,还有一个专业的 24/7 支持团队准备好帮助你。

哪个更适合商用?

CentOS。

同样,你仍然可以使用 Ubuntu 作为商用网站或公司内部服务器,但 CentOS 有它的优势:

  • CentOS(可以说)更稳定以及更安全。由于 CentOS 的更新频率较低,这意味着软件测试的时间更长,并且只有真正稳定的版本才会得到发布。如果你使用 CentOS,你不会因新的有 bug 的应用程序版本而遇到任何稳定性问题,因为你不会得到那个新的有 bug 的版本。
  • 大多数控制面板(包括*受欢迎的控制面板 – cPanel)仅支持 CentOS。所以这意味着如果你是一个网站托管公司,或者如果你是一个有很多客户的网站服务代理商,并且需要一个控制面板 – CentOS 是一个更好的选择。

尝试一下它们并选择一个

如果你还是不能决定,你可以免费试试它们。你可以在本地安装或使用 live 镜像。你还可以从阿里云和 Ucloud 这样的地方买到便宜的虚拟专用服务器。你可以在几秒钟内启动 CentOS/Ubuntu 服务器。

哪个更快?

它们在速度方面是相同的。它们和运行在你自己的硬件上一样快。它们将如你配置的一样快。不管怎样,你都应该正确配置并且保护所有的服务器、配置和应用程序。

你会使用哪个发行版?想告诉我们你是哪个发行版的拥趸么?请随时留下评论。

文末评论

W. Anderson:

我的大多数 Linux 服务器部署都是针对企业客户的,所以我对文章作者以 GUI 客户端版本来反映任何服务器的管理功能感到困惑。通常,许多服务提供商也会在 CentOS、Ubuntu,或经常部署的 OpenSuse Leap 和 FreeBSD 10+ 服务器操作系统上提供 WebMin、VirtualAdmin 或类似工具作为控制面板,即使是在虚拟专用服务器(VPS)环境中。

CentOS 在许多商业应用以及高级网络/虚拟化和云计算环境方面具有明显优于 Ubuntu 的优势,并且 CentOS 充分利用 SELinux 框架用于加强的安全层,而目前在 Ubuntu 中则不可用(或不容易)。

这种类型的比较通常是多余的,因为几乎总是有特定的和细微的要求,和需要服务器实现的需求,这将决定哪个发行版具有更多的优势或用途 – 基于技术专家/托管公司的专业知识和广泛的经验。

VAN DER BEKEN:

正确的比较应该是对 Debian 和 CentOS 进行比较。

以我的经验,我使用 CentOS 和 Debian 作为服务器,稍微偏爱 Debian 一点点,因为它的社区。

利用闲置笔记本搭建自己的开发服务器

1、对Ubuntu服务器进行基础配置
2、配置dnsmasq服务器
3、文章没什么技术含量,主要记录一些配置文件的位置
前言
*近新入手了一台MacBook Air,原来的ThinkPad就闲置下来了,感觉一直放着太浪费了,就重装了一个Ubuntu Server 16.04的系统,用来做自己的开发服务器。折腾了几个小时,就都搞定了,特意写下这篇文章,来记录一下自己折腾的过程。

基础配置
服务器安装的过程就不说了,大都是那么几步。有一个奇怪的问题就是安装的时候,需要设置时区,我竟然没有找到东八区,只好先设置了一个太平洋时区,好尴尬,不知道是不是Ubuntu的文本安装界面没有东八区这个选项,还是我英文太差了,没有找到。

设置时间
由于安装时我们设置了错误的时区,所以首先需要调整一下时区。Ubuntu 16.04已经完全集成了Systemd,所以我们只需要通过sudo timedatectl set-timezone Asia/Shanghai命令,就可以将时区设置为亚洲/上海了,同时我们也可以运行sudo timedatectl set-ntp 1命令,打开自动从 NTP 服务器同步时间,一会之后服务器时间就正常了。timedatectl命令还有一个选项是set-local-rtc,用来将硬件时间设置为本地时间,而不是UTC时间,这个选项我默认是关闭的。

更改软件源为中科大源
接下来,就是更改源了,打开/etc/apt/sources.list文件,将所有的us.archive.ubuntu.com替换成mirrors.ustc.edu.cn就可以了,注意这里由于我安装的时候选择的是美国的源,所以域名为us.archive.ubuntu.com,如果选择了其他地方的源,域名可能不一样。

同时要注意,security.ubuntu.com这个源表示的是 Ubuntu 进行安全更新的源,用来推送紧急安全更新的补丁,这个源我建议保持原样,因为紧急安全更新的补丁还是从 Ubuntu 官方下载比较好,不建议从其他地方来下载。

设置关闭盖子不休眠
由于我的电脑是笔记本,尽管没有装图形界面,但是在合上盖子之后,系统仍然会自动休眠,所以需要将这个自动休眠的功能关掉。我在网上搜索了一下,在 Askubuntu 上找到了一个相关的问题,按照问题中的答案所说,向/etc/systemd/logind.conf文件中添加一行HandleLidSwitch=ignore,然后重启systemd-logind.service服务,就关闭掉这个功能啦。

配置网络环境
将服务器配置好以后,接下来我们就需要配置网络了。

设置DHCP
我的笔记本是通过网线连接到路由器上的,所以,首先我们需要将有线网卡通过 DHCP 自动连接网络的功能打开。这里我在网上搜索了一下,搜到了一篇文章:Ubuntu Networking Configuration Using Command Line 。这篇文章很详细地介绍了Ubuntu如何设置动态IP和静态IP。我的电脑在刚装好系统的时候,没有任何关于有线网卡的配置文件,仅能够通过ip addr命令来看到当前系统的网卡,在了解到有线网卡的名称为enp12s0之后,我新建了一个文件/etc/network/interfaces.d/enp12s0.conf,然后向其中添加了如下的内容,

# 设置网卡enp12s0在开机的时候通过 DHCP 自动连接到网络。
auto enp12s0
iface enp12s0 inet dhcp
1
2
3
上面两句配置就表示设置网卡enp12s0在开机的时候通过 DHCP 自动连接到网络。

设置默认网关
设置好网卡的 DHCP 以后,我的服务器能够 ping 通路由器网关了,但是仍然无法 ping 通外网,显然,这是由于服务器本机的网关没有配置好,后来我又上网去搜索,发现了Askubuntu 上一个类似的问题,其中有个答案提到,dhclient只在当前服务器没有设置默认网关的时候,才会设置由 DHCP 服务器提供的路由器地址为默认网关。我通过ip route看了一下我的服务器的路由表,发现默认网关为网卡lo,所以 DHCP 服务器下发下来的网关地址并不会生效。我又在/etc/network/interfaces中添加了如下的配置:post-up route del default dev lo,删除掉默认走lo设备的路由配置。

然后我再来重启电脑,就发现服务器一开机就能够正常 ping 通外网了。

设置路由器
看到这里,相信大家肯定都有一些疑惑,服务器不应该是默认设置为静态IP吗,为什么你要配置 DHCP 呢。原因就在这一小节,我用的路由器是华硕的RT – N12,它的 DHCP 服务器有一个功能,就是将MAC地址和IP地址进行绑定,所以,我只需要在路由器上配置好MAC地址和IP地址的绑定,这样就相当于起到了静态IP的作用了,而且更改起来也比较方便,不需要服务器和路由器两头改。

配置DNS
由于我访问我的服务器的时候想通过域名来访问(方便以后添加HTTPS证书),所以我需要在我的内网中自己搭建一个DNS服务器,来负责服务器的域名解析。

安装并设置dnsmasq
由于我的需求很简单,只需要进行一个域名解析就可以了,所以我选择了dnsmasq,而不是比较复杂的bind9。

dnsmasq在Ubuntu的源中直接有deb安装包,所以我们直接通过sudo apt install dnsmasq命令安装即可。

dnsmasq的配置我参考了文章使用Dnsmasq搭建内网DNS服务器。使用了如下的配置:

# 设置服务器的监听地址为192.168.X.X和127.0.0.1
listen-address=192.168.X.X,127.0.0.1
# 所有没有.号的域名(plain names)都不会向上游DNS Server转发,只查询hosts文件
domain-needed
# 所有保留IP地址段内的反向查询都不会向上游DNS Server转发,只查询hosts文件
bogus-priv
# 不要读取/etc/resolver中的DNS Server的配置
no-resolv
# 不要poll /etc/resolver文件的更新
no-poll
# 配置上游服务器为DNSPod的公共DNS
server=119.29.29.29
server=182.254.116.116
1
2
3
4
5
6
7
8
9
10
11
12
13
配置好了以后,我们可以通过dnsmasq –test命令来检查dnsmasq的配置文件语法是否正确。

然后我们在服务器的/etc/hosts中添加我们想要设置的解析记录,比如这台服务器我设置了如下的记录:

192.168.X.X dev.bwangel.me
1
然后通过sudo systemctl enable dnsmasq && sudo systemctl restart dnsmasq命令启动dnsmasq服务即可。

*后我们可以通过dig命令测试一下,运行如下命令: dig dev.bwangel.me @localhost,看返回的IP地址是否和我们设置的解析记录相同。

设置路由器
配置好了DNS服务器以后,我们再来修改路由器的 DHCP 策略,设置下发的DNS服务器IP地址为我们的DNS服务器地址,这样内网中所有的DNS查询都会先经过这台DNS服务器。而我们的dev.bwangel.me域名也就能够成功解析了。至此,我们的开发服务器就已经搭建好了,我们可以通过SSH连接上来,搭建我们想要的服务了。

遇到的一些小坑
dnsmasq没有绑定本地地址
配置好了 DNS 服务器以后,我在服务器上 ping 百度的时候会一直卡着,但是 ping 公网 IP 却是可以 ping 通的,当时我*反应就是DNS解析出错了,只是不知道是DNS服务器配置的有问题,还是DNS服务器的IP地址路由器没有正确地下发下来。

接着我就利用dig来测试,发现使用dig www.baidu.com @192.168.X.X命令可以得到正常结果,而dig www.baidu.com @127.0.0.1就会卡着。然后我就觉得应该是dnsmasq没有监听127.0.0.1导致的问题。*后发现服务器DNS的配置文件/etc/resolv.conf中设置的默认DNS为127.0.0.1,而它去查询127.0.0.1的时候会卡着,也不报错,导致服务器不会使用备选的DNS服务器来查询域名,*终导致出现了 ping 百度卡着这种情况。我将dnsmasq的监听地址加上127.0.0.1之后就OK了。

这里还有一点没有搞清楚,路由器的 DHCP 中配置的DNS服务器并没有正确地应用,服务器还是默认遵循/etc/resolv.conf文件中的配置,这个还需要进一步了解一下。

ssh出现locale报错
这个问题经常遇到了,在Mac上通过SSH连接到Ubuntu上之后,在安装更新的过程中,出现了如下的报错:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_MESSAGES = “zh_CN.UTF-8”,
LANG = “zh_CN.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
1
2
3
4
5
6
7
8
这是由于终端SSH的时候,会将本地的locale配置传到服务端上去,我的本地设置的语系是zh_CN.UTF-8,但是服务器上只安装了en_US.UTF-8,所以就会报错提示说找不到语系zh_CN.UTF-8相关的文件。这里我们只需要修改一下服务器的/etc/locale.gen配置文件,将zh_CN.UTF-8相关的配置取消注释,然后再来运行locale-gen命令,就会安装上zh_CN.UTF-8语系相关的文件了,再来运行perl程序就不会报错了。
————————————————
版权声明:本文为CSDN博主「「已注销」」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012291393/article/details/78650525

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速