Linux网络服务——基础设置

网络服务命令

1.ping命令

作用:测试网络连通性(使用icmp协议)

常见选项

  • -c:指定ping的次数,默认无限次

  • -I:指定发送请求的网卡

    [root@localhost ~]# ping 192.168.77.78 -c 4 -I ens160
    PING 192.168.77.78 (192.168.77.78) from 192.168.77.77 ens160: 56(84) 比特的数据。
    64 比特,来自 192.168.77.78: icmp_seq=1 ttl=64 时间=1.83 毫秒
    64 比特,来自 192.168.77.78: icmp_seq=2 ttl=64 时间=1.14 毫秒
    64 比特,来自 192.168.77.78: icmp_seq=3 ttl=64 时间=2.71 毫秒
    64 比特,来自 192.168.77.78: icmp_seq=4 ttl=64 时间=0.525 毫秒

    --- 192.168.77.78 ping 统计 ---
    已发送 4 个包, 已接收 4 个包, 0% packet loss, time 3006ms
    rtt min/avg/max/mdev = 0.525/1.550/2.714/0.813 ms
    [root@localhost ~]#

2.arp命令

ARP:Address Resolution Protocol,地址转换协议,是一个链路层协议,工作在OSI模型的第二层,不能识别32位ip地址,以48位以太网地址(MAC地址)传输以太网数据包

常见选项

  • -a:查看所有连通过的机器的MAC地址

  • 指定ip地址:查看某个机器的mac地址

    [root@localhost ~]# arp -a
    ? (192.168.77.78) at 00:0c:29:a8:21:47 [ether] on ens160
    ? (192.168.77.1) at 00:50:56:c0:00:01 [ether] on ens160
    localhost (127.0.0.1) at <incomplete> on ens160
    [root@localhost ~]# arp 192.168.77.78
    Address HWtype HWaddress Flags Mask Iface
    192.168.77.78 ether 00:0c:29:a8:21:47 C ens160
    [root@localhost ~]#

3.nslookup命令

作用:域名解析命令,解析使用dns服务器配置的正反向记录

解析结果

  • 正向解析:nslookup 域名------ip+解析使用的dns服务器
  • 反向解析:nslookup ip------域名

注:详细情况看以下实验

4.traceroute命令

作用:查看本地主机与目标主机之间的路由路径

主要特点(先安装)

  1. 使用的是ICMP协议

  2. 每一行都是一次路由,若显示*则表示对方加密

    [root@localhost ~]# traceroute www.baidu.com
    traceroute to www.baidu.com (110.242.70.57), 30 hops max, 60 byte packets
    1 bogon (192.168.66.2) 2.723 ms 2.372 ms 1.791 ms
    2 * * *
    3 * * *
    4 * * *
    5 * * *
    6 * * *
    7 * * *
    。。。。。。。

5.nmap命令

作用:网络探测扫描命令

主要功能

  • 主机发现:nmap 192.168.?.1/24

  • 端口扫描:nmap -sT 指定ip

    [root@localhost ~]# nmap 192.168.77.1/24
    Starting Nmap 7.92 ( https://nmap.org ) at 2025-09-04 16:19 CST
    Nmap scan report for 192.168.77.1
    Host is up (0.0011s latency).
    All 1000 scanned ports on 192.168.77.1 are in ignored states.
    Not shown: 1000 filtered tcp ports (no-response)
    MAC Address: 00:50:56:C0:00:01 (VMware)

    Nmap scan report for 192.168.77.78
    Host is up (0.00074s latency).
    Not shown: 984 filtered tcp ports (no-response), 14 filtered tcp ports (admin-prohibited)
    PORT STATE SERVICE
    22/tcp open ssh
    9090/tcp closed zeus-admin
    MAC Address: 00:0C:29:A8:21:47 (VMware)

    Nmap scan report for 192.168.77.77
    Host is up (0.0000070s latency).
    Not shown: 999 closed tcp ports (reset)
    PORT STATE SERVICE
    22/tcp open ssh

    Nmap done: 256 IP addresses (3 hosts up) scanned in 36.68 seconds

    [root@localhost ~]# nmap -sT 192.168.77.78
    Starting Nmap 7.92 ( https://nmap.org ) at 2025-09-04 16:20 CST
    Nmap scan report for 192.168.77.78
    Host is up (0.66s latency).
    Not shown: 924 filtered tcp ports (no-response), 74 filtered tcp ports (host-unreach)
    PORT STATE SERVICE
    22/tcp open ssh
    9090/tcp closed zeus-admin
    MAC Address: 00:0C:29:A8:21:47 (VMware)

    Nmap done: 1 IP address (1 host up) scanned in 83.14 seconds

6.netstat命令

作用:查看系统的网络连接状态等

选项

  • -a:显示所有网络状态的连接

  • -n:以数字形式显示

  • -t:显示tcp连接

  • -u:显示udp连接

  • -p:显示pid和进程名

  • -I:仅显示监听状态的连接

    [root@localhost ~]# netstat -anpt
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 638/sshd: /usr/sbin
    tcp 0 0 192.168.77.77:22 192.168.77.1:9785 ESTABLISHED 800/sshd: root [pri
    tcp 0 248 192.168.77.77:22 192.168.77.1:10255 ESTABLISHED 11916/sshd: root [p
    tcp6 0 0 :::22 :::* LISTEN 638/sshd: /usr/sbin

7.ss命令

作用:查看系统的网络连接状态等

优点

  1. 产生的并发连接数更多

  2. 直接查询统计信息,更快

  3. 在很多linux系统中被支持,且默认安装

    [root@localhost ~]# ss -anpt
    State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
    LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=638,fd=3))
    ESTAB 0 0 192.168.77.77:22 192.168.77.1:9785 users:(("sshd",pid=804,fd=4),("sshd",pid=800,fd=4))
    ESTAB 0 52 192.168.77.77:22 192.168.77.1:10255 users:(("sshd",pid=11920,fd=4),("sshd",pid=11916,fd=4))
    LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=638,fd=4))

进程命令

  • ps:侧重静态的查看系统中正常运行的进程
  • top:侧重动态的查看进程和服务器的健康状态
  • pstree:查看进程树

抓包命令

1.tcpdump

作用:网络数据包抓获工具

常见选项

  • -c 数字:控制抓取包的数量,默认抓48字节

  • -i 网卡名:监听指定网卡的流量

  • -n:以ip形式显示,不进行域名反解

  • -A:以ASCII码的格式显示

  • port 端口:监听指定端口的报文

  • -v:显示抓取报文的详细信息

  • -w:将抓取的数据写入文件

  • -r:查看使用-w写入的抓包文件

    #从192.168.77.77ping192.168.77.78,在192.168.77.78客户机查看
    [root@localhost ~]# tcpdump -nA -i ens160 icmp
    dropped privs to tcpdump
    tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
    listening on ens160, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    16:28:45.602912 IP 192.168.77.77 > 192.168.77.78: ICMP echo request, id 7, seq 1, length 64
    E..TLl@.@..P..MM..MN.........M.h....!....................... !"#%&'()*+,-./01234567 16:28:45.603189 IP 192.168.77.78 > 192.168.77.77: ICMP echo reply, id 7, seq 1, length 64 E..T.[..@..a..MN..MM.........M.h....!....................... !"#%&'()*+,-./01234567

网关路由命令

  • 路由:不同网段的数据转发;路由选择
  • 网关:不同网段的数据转发;路由选择;默认路由;NAT转换

1.route命令

  • -n:查看系统中的路由表信息

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.77.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160

2.设置默认路由(网关)

临时设置

  • 添加:route add default gw 网关地址

  • 删除:route del default gw 网关地址

    [root@localhost ~]# route add default gw 192.168.77.78
    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.77.78 0.0.0.0 UG 0 0 0 ens160
    192.168.77.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
    [root@localhost ~]# route del default gw 192.168.77.78
    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.77.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160

永久设置

  • vim /etc/NetworkManager/system-connections/网卡名.nmconnection

3.模拟路由

  • 硬路由:以特有的硬件设备提供设定的路由器功能(路由器)
  • 软路由:指定利用台式机或服务器配合软件达成路由器的功能(虚拟机模拟路由)(条件:多网卡;具有ip数据包转发功能)

注:正常情况下,只有逻辑网段和物理网段都相同,两台主机才能ping通

跨网段通信实验

步骤一:准备阶段

两台机器,A主机用VMnet1网卡配置ip地址:192.168.77.77,B主机用VMnet6网卡配置192.168.78.78(该网卡在虚拟网络编辑器中设置添加,属于进主机模式)

A主机​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

复制代码
[root@localhost ~]# ip add
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f6:d2:16 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.77.77/24 brd 192.168.77.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fef6:d216/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f6:d2:20 brd ff:ff:ff:ff:ff:ff
    altname enp19s0

B主机

复制代码
[root@localhost ~]# ip add
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6b:bb:8d brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet6 fe80::20c:29ff:fe6b:bb8d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6b:bb:97 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.78.78/24 brd 192.168.78.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::5ed6:9bb4:ca81:4a1d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

步骤二:虚拟机模拟路由器

另开第三台虚拟机C,添加两块进主机模式的网卡,VMnet1(77.78)和VMnet6(78.79)

复制代码
[root@localhost ~]# ip add
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a8:21:47 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.77.78/24 brd 192.168.77.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea8:2147/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a8:21:51 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.78.79/24 brd 192.168.78.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::262e:9e8:6e0a:91b4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

步骤三:设置网关

查看网关命令:route -n

添加网关:为主机A添加网关地址(77.78),为主机B添加网关地址(78.79)

注:给A添加网关,B未添加,则ApingB不通但请求可达

A主机

复制代码
[root@localhost ~]# route add default gw 192.168.77.78
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.77.78   0.0.0.0         UG    0      0        0 ens160
192.168.77.0    0.0.0.0         255.255.255.0   U     100    0        0 ens160
[root@localhost ~]# 

B主机

复制代码
[root@localhost ~]# route add default gw 192.168.78.79
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.79   0.0.0.0         UG    0      0        0 ens224
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens224

步骤四:开启路由转发

注:主机C需开启路由转发,若没有开启路由转发功能,则主机A和主机B不互通

复制代码
[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

步骤五:测试A和B的连通性

ApingB

复制代码
[root@localhost ~]# ping 192.168.78.78
PING 192.168.78.78 (192.168.78.78) 56(84) 比特的数据。
64 比特,来自 192.168.78.78: icmp_seq=1 ttl=63 时间=1.22 毫秒
64 比特,来自 192.168.78.78: icmp_seq=2 ttl=63 时间=1.37 毫秒
64 比特,来自 192.168.78.78: icmp_seq=3 ttl=63 时间=0.956 毫秒
64 比特,来自 192.168.78.78: icmp_seq=4 ttl=63 时间=1.10 毫秒
^C
--- 192.168.78.78 ping 统计 ---
已发送 4 个包, 已接收 4 个包, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.956/1.162/1.366/0.150 ms

BpingA

复制代码
[root@localhost ~]# ping 192.168.77.77
PING 192.168.77.77 (192.168.77.77) 56(84) 比特的数据。
64 比特,来自 192.168.77.77: icmp_seq=1 ttl=63 时间=0.833 毫秒
64 比特,来自 192.168.77.77: icmp_seq=2 ttl=63 时间=1.83 毫秒
64 比特,来自 192.168.77.77: icmp_seq=3 ttl=63 时间=1.65 毫秒
64 比特,来自 192.168.77.77: icmp_seq=4 ttl=63 时间=0.791 毫秒
^C
--- 192.168.77.77 ping 统计 ---
已发送 4 个包, 已接收 4 个包, 0% packet loss, time 3040ms
rtt min/avg/max/mdev = 0.791/1.274/1.827/0.466 ms

DHCP网络分配实验

步骤一:准备工作

  1. DHCP服务端设置:VMnet1:77.77
  2. DCHP客户端设置:VMnet1:auto
  3. 关闭网卡自带的DHCP服务功能

DHCP服务端

复制代码
[root@localhost ~]# ip add
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f6:d2:16 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.77.77/24 brd 192.168.77.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fef6:d216/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f6:d2:20 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet6 fe80::86d:976:c902:c775/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

DCHP客户端

复制代码
[ipv4]
method=auto
#address=192.168.77.78/24

关闭VMnet1的DCHP自动获取功能

步骤二:搭建DHCP服务器

安装dhcp服务,生成、修改配置文件/etc/dhcp/dhcpd.conf

复制代码
#安装软件包
dnf -y install dhcp-server
#生成配置文件
cp -a /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf
..................
# A slightly different configuration for an internal subnet.
subnet 192.168.77.0 netmask 255.255.255.0 {
  range 192.168.77.50 192.168.77.60;  #设置地址范围
  option domain-name-servers 8.8.8.8;    #设置DNS地址
  option domain-name "internal.example.org";
  option routers 192.168.77.1;    #设置网关地址
  option broadcast-address 192.168.77.255;    #设置广播地址
  default-lease-time 600;    #设置租约时间
  max-lease-time 7200;
}
..................

步骤三:启动DHCP服务

复制代码
[root@localhost ~]# systemctl start dhcpd  
[root@localhost ~]# ss -anup | grep :67
UNCONN 0      0            0.0.0.0:67        0.0.0.0:*    users:(("dhcpd",pid=12986,fd=7))
[root@localhost ~]# 

步骤四:查看DHCP服务日志

复制代码
tail -f /var/log/messages

步骤五:重启客户端网卡

复制代码
nmcli con reload
nmcli con up ens160

步骤六:查看获取资源

客户端

复制代码
#查看IP地址是否成功获取
[root@localhost ~]# ip add
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6b:bb:8d brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.77.50/24 brd 192.168.77.255 scope global dynamic noprefixroute ens160
       valid_lft 339sec preferred_lft 339sec
    inet6 fe80::20c:29ff:fe6b:bb8d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6b:bb:97 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.78.78/24 brd 192.168.78.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::5ed6:9bb4:ca81:4a1d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
#查看是否获取到网关路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.79   0.0.0.0         UG    0      0        0 ens224
0.0.0.0         192.168.77.1    0.0.0.0         UG    101    0        0 ens160
192.168.77.0    0.0.0.0         255.255.255.0   U     101    0        0 ens160
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens224
[root@localhost ~]# 
#查看是否获取到dns地址
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search internal.example.org
nameserver 8.8.8.8

服务器

注:如果有多个客户端,则地址池按顺序分配资源

DHCP保留地址实验

步骤一:修改服务配置文件

复制代码
#/etc/dhcp/dhcpd.conf
host fantasia {
  hardware ethernet 00:0c:29:6b:bb:8d;    #客户机A的mac地址
  fixed-address 192.168.77.55;    #固定分配给客户机A的ip地址
}

步骤二:重启DHCP服务

注:最好先关闭dhcp服务后再重启,关闭dhcp服务后会直接清楚之前的租约

复制代码
[root@localhost ~]# systemctl stop dhcpd
[root@localhost ~]# systemctl start dhcpd

#注:设置固定IP时,一定有一个同网络的subnet地址池分配
#注:客户机获取到host的IP地址外,还能获得subnet里额外的资源
#注:该固定IP可以是地址池之外的IP地址
#注:若是要给多个mac地址固定分IP,需要些多个host块、且后面的名字不相同

步骤三:配置客户端

注:客户端跟服务器共用同一块网卡,即处于同一个局域网

复制代码
#设置网卡、将获取IP地址的方式设置为dhcp
$ vim /etc/NetworkManager/system-connections/ens160.nmconnection
method=auto
# 重启网卡、查看获取的IP地址(已获取了一个IP,想重新获取也可以重启网卡)
$ nmcli con reload
$ nmcli con up ens160
#查看ip是否在地址池范围里
$ ip addr
#查看是否能获取subnet里的网关、dns等资源
$ route -n
$ cat /etc/resolv.conf
相关推荐
云霄IT8 小时前
CentOS7安装Nginx服务——为你的网站配置https协议和自定义服务端口
服务器·nginx·https
绵绵细雨中的乡音8 小时前
HTTP 协议详解
网络·网络协议·http
wowocpp8 小时前
ubuntu的2T新硬盘分区、格式化并挂载
linux·ubuntu
東雪蓮☆8 小时前
深入掌握sed:Linux文本处理的流式编辑器利器
linux·运维·编辑器
一张假钞8 小时前
Ubuntu 24.04 中 nvm 安装 Node 权限问题解决
linux·运维·ubuntu
耐达讯通信技术8 小时前
“乾坤大挪移”:耐达讯自动化RS485转Profinet解锁HMI新乾坤
运维·网络·物联网·自动化·信息与通信
耐达讯通信技术9 小时前
惊爆!耐达讯自动化RS485转Profinet,电机连接的“逆天神器”?
运维·网络·人工智能·科技·网络协议·自动化
二向箔reverse9 小时前
从传统CNN到残差网络:用PyTorch实现更强大的图像分类模型
网络·pytorch·cnn
THMAIL9 小时前
机器学习从入门到精通 - Python环境搭建与Jupyter魔法:机器学习起航必备
linux·人工智能·python·算法·机器学习·docker·逻辑回归