前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Linux网络的几个命令介绍

关于Linux网络的几个命令介绍

作者头像
AsiaYe
发布2019-11-06 17:38:24
9080
发布2019-11-06 17:38:24
举报
文章被收录于专栏:DBA随笔

关于Linux网络的几个命令介绍

这两天在做consul的域名转发部分的内容,找了系统方向的几个同事来帮忙配置DNS相关的东西,之前对于Linux网络这块儿的了解还是不太够,这里简单记录几个常用的命令吧。

01

nslookup命令

nslookup的命令主要用于查询DNS的记录,通常用来查看域名的解析是否正确,在网络故障的时候可以用来诊断网络方面的问题,这个命令的使用方法比较简单,罗列一下:

nslookup domain [dns-server]

代码语言:javascript
复制
C:\Users\yeyz>nslookup www.baidu.com
服务器:  XXX.office.local
Address:  192.168.XX.XX

非权威应答:
名称:    www.a.shifen.com
Addresses:  XXX.XXX.38.150
          XXX.XXX.38.149
Aliases:  www.baidu.com

当然也可以使用下面这种方法,后面跟上dns-server

代码语言:javascript
复制
C:\Users\yeyz>nslookup www.baidu.com 127.0.0.1
服务器:  UnKnown
Address:  127.0.0.1

*** UnKnown 找不到 www.baidu.com: No response from server

我们本地没有配置DNS转发的服务,所以就无法解析到www.baidu.com的IP地址,如果你本地配置了转发服务或者在某一个域下面配置了转发的服务,那么就可以在后面跟上dns-server的值,这样,就能解析到域名对应的IP地址。

02

ipconfig /flushdns

为了提高网站的访问速度,一般系统会在成功访问一个网站域名之后将网站的域名和IP地址信息缓存在本地,下次访问该域名的时候直接通过IP进行访问,一些网站的域名没有变化,但是IP地址发生了变化,例如我们使用consul在一套主从复制的MySQL环境的时候,如果当前的活跃节点进行了切换,但是DNS不变,这种情况下可能导致这个域名无法访问。

这个命令就是用来刷新本地的DNS缓存的,刷新之后就可以排除一些由于IP变化而带来的网站不可访问的问题。

03

route命令

这个命令一般是为了显示和操作路由表的,它最常用的场景是查询当前路由表,也就是:

route -n

-n参数是设置在输出的信息中不打印主机名称而直接打印ip地址

还有一个常用的命令是route print,这个命令也是打印路由表,它的结果一般分为几列,

代码语言:javascript
复制
IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0     192.168.18.1    192.168.18.36     25
     10.127.127.0    255.255.255.0            在链路上      10.127.127.1    291
     10.127.127.1  255.255.255.255            在链路上      10.127.127.1    291
   10.127.127.255  255.255.255.255            在链路上      10.127.127.1    291
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
     192.168.18.0    255.255.255.0            在链路上     192.168.18.36    281
    192.168.18.36  255.255.255.255            在链路上     192.168.18.36    281
   192.168.18.255  255.255.255.255            在链路上     192.168.18.36    281

分别是目标网络、网络掩码、对应网关、接口(也就是分配给网卡的IP地址,也就是本机在网卡的地址)、以及跃点数(有能力路由的网络设备点)。

04

dig命令

dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常。使用consul的域名服务的时候经常会用到这个命令,这个命令的使用方法也比较简单:

dig (参数) 域名

来看一个例子:

代码语言:javascript
复制
[dba_mysql /usr/local]$dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13827
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          251     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       251     IN      A       220.181.38.149
www.a.shifen.com.       251     IN      A       220.181.38.150

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 30 21:27:31 2019
;; MSG SIZE  rcvd: 90

可以看到这个命令解析出来了一个IP地址 220.181.38.149。

当然,这个命令还包含一些参数:

代码语言:javascript
复制
1 @<服务器地址>:指定进行域名解析的域名服务器;
2 -b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
3 -f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
4 -P:指定域名服务器所使用端口号;
5 -t<类型>:指定要查询的DNS数据类型;
6 -x<IP地址>:执行逆向域名查询;
7 -4:使用IPv4;
8 -6:使用IPv6;

最常使用的就是@这个参数,一般用来指定域名解析服务器,通常使用consul server的IP地址。

Linux网络部分的知识点还是很多的,以后有时间详细写一写,今天的内容都是大概了解,以及最为常用的一些用法,当然这几个命令还有一些其他的用法,本人没有详细研究,如果有兴趣大家可以自己研究研究。

今天就先这样吧。

01

python角落

以后如果有时间就多加个板块,写一点python的小代码练练手。

问题描述:密码检验程序,检验密码合规

密码要求:

1、长度需要超过8位

2、包括大小写字母、数字、其他符号、以上至少三种。

3、不能有相同长度超过2的子串重复

输入:多个密码

输入:OK或者NOT OK

代码如下:

代码语言:javascript
复制
#  -*- coding:utf-8 -*-
#验证密码长度是否大于8
def checklen(s):
    if len(s) > 8:
        return True
    else:
        return False

#验证密码中包含的字母、数字、符号是否大于三种
def check2(s):
    flag_up, flag_low, flag_digit, flag_other = 0, 0, 0, 0
    for i in s:
        if i.isupper():
            flag_up = 1
        elif i.islower():
            flag_low = 1
        elif i.isdigit():
            flag_digit = 1
        else:
            flag_other = 1

    if (flag_up + flag_low + flag_digit + flag_other) >= 3:
        return True
    else:
        return False

#检验是否包含重复的子串
def check3(s):
    for i in range(len(s) - 3):
        #str.count(sub, start= 0,end=len(string))
        #其中start默认第一个位置0,end默认最后一个位置len
        if s.count(s[i:i + 3]) > 1:
            return False
    return True


while True:
    try:
        s = raw_input()
        if checklen(s) and check2(s) and check3(s):
            print "OK"
        else:
            print "NOT OK"

    except Exception, e:
        break

测试结果:

代码语言:javascript
复制
"D:\Program Files\JetBrains\Pyfiles\venv\Scripts\python.exe" E:/GithubDownloadCode/hello_world/secret.py
123DFh.@iibq
OK
11111111
NOT OK
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档