IP地址配置
手动指定IP
以下3个命令都可以完成IP地址的配置:
- ifconfig interface [address_family] [address [netmask]]
- ipconfig set interface-name (MANUAL | INFORM) ip-address subnet-mask
- networksetup -setmanual <networkservice> <ip> <subnet> <router>
手动指定IP举例:
macbook$ sudo ifconfig en0 inet 192.168.1.10 netmask 255.255.255.0
macbook$ sudo ipconfig set en0 MANUAL 192.168.1.10 255.255.255.0
macbook$ sudo networksetup -setmanual Wi-Fi 192.168.1.10 255.255.255.0 192.168.1.1
注意
ifconfig
和ipconfig
都是指定网口设备名称,而networksetup
要求使用MacOS为网口设置的别名(所谓“network service”)来指定网口。
使用DHCP配置IP
可以使用以下2个命令来重新获取DHCP配置:
- ipconfig set interface-name (DHCP | BOOTP)
- networksetup -setdhcp <networkservice>
使用DHCP动态获取IP地址举例:
macbook$ ipconfig set en0 DHCP
macbook$ networksetup -setdhcp Wi-Fi
注意
ifconfig
和ipconfig
都是指定网口设备名称,而networksetup
要求使用MacOS为网口设置的别名(所谓“network service”)来指定网口。
配置默认网关
可以使用以下命令配置默认网关:
- networksetup -setmanual <networkservice> <ip> <subnet> <router>
- route [add | change ] default <gateway>
- route [add | change ] -net 0.0.0.0 <gateway>
默认网关配置举例:
macbook$ sudo networksetup -setmanual Wi-Fi 192.168.1.10 255.255.255.0 192.168.1.1
以下两条命令等价:
macbook$ sudo route add default 192.168.1.1
macbook$ sudo route add -net 0.0.0.0 192.168.1.1
如果已存在默认路由,你可能需要先删除现有默认路由,然后再添加默认路由:
macbook$ sudo route delete default
macbook$ sudo route add default 192.168.1.1
或者你也可以替换现有默认路由:
macbook$ sudo route change default 192.168.1.1
添加静态路由
可以使用以下命令添加路由:
macbook$ sudo route [-n] [add | delete | change] [-net | -host] [-ifscope boundif] destination gateway [netmask]
首先查看当前路由表:
macbook$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 21 5 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 1699 lo0
169.254 link#4 UCS 0 0 en0
169.254 link#6 UCSI 1 0 en6
169.254.89.143/32 link#6 UCS 0 0 en6
192.168.1 link#4 UCS 1 0 en0
192.168.1.1/32 link#4 UCS 1 0 en0
192.168.1.1 f4:ec:38:1e:ea:52 UHLWIir 19 224 en0 887
192.168.1.101/32 link#4 UCS 1 0 en0
192.168.1.101 48:d7:5:cb:7d:bd UHLWIi 1 4 lo0
192.168.1.104 7c:b2:32:70:33:5c UHLWI 0 2 en0 1053
224.0.0/4 link#4 UmCS 2 0 en0
224.0.0/4 link#6 UmCSI 0 0 en6
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 3 en0
255.255.255.255/32 link#4 UCS 0 0 en0
255.255.255.255/32 link#6 UCSI 0 0 en6
Internet6:
Destination Gateway Flags Netif Expire
default fe80::%utun1 UGcI utun1
::1 ::1 UHL lo0
fdf7:a4c1:cda:e04f::/64 fe80::f4d3:8e83:6ac7:4c70%utun0 Uc utun0
fdf7:a4c1:cda:e04f:f4d3:8e83:6ac7:4c70 link#10 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::ca3:96a0:7113:b973%en0 48:d7:5:cb:7d:bd UHLI lo0
fe80::%en6/64 link#6 UCI en6
fe80::c02:7c0f:52a1:d528%en6 ff:fa:0:0:78:86 UHLI lo0
fe80::%awdl0/64 link#8 UCI awdl0
fe80::e00e:6dff:fef9:e630%awdl0 e2:e:6d:f9:e6:30 UHLI lo0
fe80::%utun0/64 fe80::f4d3:8e83:6ac7:4c70%utun0 UcI utun0
fe80::f4d3:8e83:6ac7:4c70%utun0 link#10 UHLI lo0
fe80::%utun1/64 fe80::593a:c424:495:3b05%utun1 UcI utun1
fe80::593a:c424:495:3b05%utun1 link#11 UHLI lo0
ff01::%lo0/32 ::1 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en6/32 link#6 UmCI en6
ff01::%awdl0/32 link#8 UmCI awdl0
ff01::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff01::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
ff02::%lo0/32 ::1 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en6/32 link#6 UmCI en6
ff02::%awdl0/32 link#8 UmCI awdl0
ff02::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff02::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
方法1:添加路由:
macbook$ sudo route add -net 10.1.1.1/32 192.168.1.1
Password:
add net 10.1.1.1: gateway 192.168.1.1
查看当前路由表:
macbook$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 23 5 en0
10.1.1.1/32 192.168.1.1 UGSc 0 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 1699 lo0
169.254 link#4 UCS 0 0 en0
169.254 link#6 UCSI 1 0 en6
169.254.89.143/32 link#6 UCS 0 0 en6
192.168.1 link#4 UCS 1 0 en0
192.168.1.1/32 link#4 UCS 1 0 en0
192.168.1.1 f4:ec:38:1e:ea:52 UHLWIir 22 210 en0 1000
192.168.1.101/32 link#4 UCS 1 0 en0
192.168.1.101 48:d7:5:cb:7d:bd UHLWI 0 4 lo0
192.168.1.104 7c:b2:32:70:33:5c UHLWIi 1 2 en0 1166
224.0.0/4 link#4 UmCS 2 0 en0
224.0.0/4 link#6 UmCSI 0 0 en6
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 3 en0
255.255.255.255/32 link#4 UCS 0 0 en0
255.255.255.255/32 link#6 UCSI 0 0 en6
Internet6:
Destination Gateway Flags Netif Expire
default fe80::%utun1 UGcI utun1
::1 ::1 UHL lo0
fdf7:a4c1:cda:e04f::/64 fe80::f4d3:8e83:6ac7:4c70%utun0 Uc utun0
fdf7:a4c1:cda:e04f:f4d3:8e83:6ac7:4c70 link#10 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::ca3:96a0:7113:b973%en0 48:d7:5:cb:7d:bd UHLI lo0
fe80::%en6/64 link#6 UCI en6
fe80::c02:7c0f:52a1:d528%en6 ff:fa:0:0:78:86 UHLI lo0
fe80::%awdl0/64 link#8 UCI awdl0
fe80::e00e:6dff:fef9:e630%awdl0 e2:e:6d:f9:e6:30 UHLI lo0
fe80::%utun0/64 fe80::f4d3:8e83:6ac7:4c70%utun0 UcI utun0
fe80::f4d3:8e83:6ac7:4c70%utun0 link#10 UHLI lo0
fe80::%utun1/64 fe80::593a:c424:495:3b05%utun1 UcI utun1
fe80::593a:c424:495:3b05%utun1 link#11 UHLI lo0
ff01::%lo0/32 ::1 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en6/32 link#6 UmCI en6
ff01::%awdl0/32 link#8 UmCI awdl0
ff01::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff01::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
ff02::%lo0/32 ::1 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en6/32 link#6 UmCI en6
ff02::%awdl0/32 link#8 UmCI awdl0
ff02::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff02::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
方法二:添加路由:
macbook$ sudo route add -net 10.1.1.2 -netmask 255.255.255.255 192.168.1.1
add net 10.1.1.2: gateway 192.168.1.1
查看路由表:
macbook$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 21 5 en0
10.1.1.1/32 192.168.1.1 UGSc 0 0 en0
10.1.1.2/32 192.168.1.1 UGSc 0 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 1699 lo0
169.254 link#4 UCS 0 0 en0
169.254 link#6 UCSI 1 0 en6
169.254.89.143/32 link#6 UCS 0 0 en6
192.168.1 link#4 UCS 2 0 en0
192.168.1.1/32 link#4 UCS 1 0 en0
192.168.1.1 f4:ec:38:1e:ea:52 UHLWIir 21 224 en0 962
192.168.1.101/32 link#4 UCS 1 0 en0
192.168.1.101 48:d7:5:cb:7d:bd UHLWI 0 4 lo0
192.168.1.104 7c:b2:32:70:33:5c UHLWI 0 2 en0 1128
224.0.0/4 link#4 UmCS 2 0 en0
224.0.0/4 link#6 UmCSI 0 0 en6
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 3 en0
255.255.255.255/32 link#4 UCS 0 0 en0
255.255.255.255/32 link#6 UCSI 0 0 en6
Internet6:
Destination Gateway Flags Netif Expire
default fe80::%utun1 UGcI utun1
::1 ::1 UHL lo0
fdf7:a4c1:cda:e04f::/64 fe80::f4d3:8e83:6ac7:4c70%utun0 Uc utun0
fdf7:a4c1:cda:e04f:f4d3:8e83:6ac7:4c70 link#10 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::ca3:96a0:7113:b973%en0 48:d7:5:cb:7d:bd UHLI lo0
fe80::%en6/64 link#6 UCI en6
fe80::c02:7c0f:52a1:d528%en6 ff:fa:0:0:78:86 UHLI lo0
fe80::%awdl0/64 link#8 UCI awdl0
fe80::e00e:6dff:fef9:e630%awdl0 e2:e:6d:f9:e6:30 UHLI lo0
fe80::%utun0/64 fe80::f4d3:8e83:6ac7:4c70%utun0 UcI utun0
fe80::f4d3:8e83:6ac7:4c70%utun0 link#10 UHLI lo0
fe80::%utun1/64 fe80::593a:c424:495:3b05%utun1 UcI utun1
fe80::593a:c424:495:3b05%utun1 link#11 UHLI lo0
ff01::%lo0/32 ::1 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en6/32 link#6 UmCI en6
ff01::%awdl0/32 link#8 UmCI awdl0
ff01::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff01::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
ff02::%lo0/32 ::1 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en6/32 link#6 UmCI en6
ff02::%awdl0/32 link#8 UmCI awdl0
ff02::%utun0/32 fe80::f4d3:8e83:6ac7:4c70%utun0 UmCI utun0
ff02::%utun1/32 fe80::593a:c424:495:3b05%utun1 UmCI utun1
设置DNS
指定DNS服务器
配置命令:
macbook$ networksetup -setdnsservers <networkservice> <dns1> [dns2] [...]
示例:
macbook$ sudo networksetup -setdnsservers Wi-Fi 114.114.114.114 114.114.114.115
不指定DNS地址参数时,清空配置DNS服务器:
macbook$ sudo networksetup -setdnsservers Wi-Fi
查看当前配置的DNS服务器
方法一:查看手动指定的DNS服务器地址
命令:
macbook$ networksetup -getdnsservers <networkservice>
注意:此命令只能查看手动指定的DNS服务器地址,无法查看到由DHCP获得的DNS地址!
示例:
macbook$ sudo networksetup -getdnsservers Wi-Fi
方法二: 查看由DHCP配置的DNS地址
命令:
macbook$ ipconfig getpacket interface-name
此命令用以查看从DHCP获得的相关网络配置信息,同时也包含DNS配置信息!
示例:
macbook$ sudo ipconfig getpacket en0
Password:
op = BOOTREPLY
htype = 1
flags = 0
hlen = 6
hops = 0
xid = 0x1da0b2e6
secs = 0
ciaddr = 0.0.0.0
yiaddr = 192.168.1.101
siaddr = 0.0.0.0
giaddr = 0.0.0.0
chaddr = 48:d7:5:cb:7d:bd
sname =
file =
options:
Options count is 7
dhcp_message_type (uint8): ACK 0x5
server_identifier (ip): 192.168.1.1
lease_time (uint32): 0xffffffff
subnet_mask (ip): 255.255.255.0
router (ip_mult): {192.168.1.1}
domain_name_server (ip_mult): {114.114.114.114, 114.114.115.115}
end (none):
清除DNS缓存
OS X 10.9 (Mavericks):
macbook$ dscacheutil -flushcache; sudo killall -HUP mDNSResponder
OS X 10.10 (Yosemite):
macbook$ sudo discoveryutil udnsflushcaches
Versions 10.10.4+:
macbook$ sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
OS X 10.11 (El Capitan) and OS X 10.12 (Sierra):
macbook$ sudo killall -HUP mDNSResponder
OS X 10.12.4:
macbook$ sudo killall -HUP mDNSResponder; sudo killall mDNSResponderHelper; sudo dscacheutil -flushcache;