LPIC 学習記録として
前提知識
ソケット
$ netstat で表示されるソケット情報の「ソケット」とは、プロセス間通信(IPC: Inter-Process Communication)を行うためのエンドポイント(接続点)を指す。
具体的には IPアドレス + ポート番号(プロトコル) の組み合わせがソケットとして定義されることが多い。
Linux では /proc/ ディレクトリの 仮想ファイル として管理される。
デフォルトゲートウェイ
パケットの宛先がルーティングテーブル中で見つからない場合に使用される送信先。
ルーティングテーブル destination が 0.0.0.0 として設定される。
命名規則
ネットワーク上のデバイスには、デバイスファイル としての実体は存在しないが、認識された際のインターフェース名には一定の命名規則がある。
古い命名規則
接続(認識)された順に数字が増えていく スタイル。
- Ethernet
-
eth0、eth1、eth2...
-
- Wireless LAN(無線 LAN)
-
wlan0、wlan1、wlan2...
-
-
PPP
-
ppp0、ppp1、ppp2...
-
インターフェース名が認識の順序に依存してしまうため、特定の物理的なインターフェースに対して起動のたびに異なるインターフェース名が付与される事態が発生する。
新しい命名規則
物理的な接続位置、ハード自体の持つ情報に基づいて付与される スタイル。
$ ip link show
1: lo 👈 : <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s1 👈 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether da:bb:ad:02:f1:1b brd ff:ff:ff:ff:ff:ff
- 通信種別を表現するもの
- Ethernet
en
- Wireless LAN(無線 LAN)
wl
- Wireless WAN(無線 WAN)
ww
- Ethernet
- 接続位置、ファームウェアの情報を表現するもの
スロット
Slot
スロットには、英語で「差し込み口、枠、空き」という意味があり、IT 分野においては、何かの部品やカードを差し込むための接続部分を指す。
マザーボードには、用途ごとのスロットがいくつか存在する。
- PCI Express(PCIe)
- グラフィックボード(GPU)、NIC、サウンドカードなどを挿して装着するための物理的差し込み口
- メモリスロット
- メインメモリ(RAM)を挿して装着するための物理的差し込み口
- M.2 スロット
- SSD、Wi-Fi カードを挿して装着するための物理的差し込み口
一方で、Linux がハードウェアを認識する際に、インターフェース名にスロット番号が使用されることがある(命名規則)。
この場合「スロット」は、PCI バス上で差し込み口を識別するための論定的な識別番号を意味する。
ネットワーク設定(インターフェース)
NetworkManager
ネットワーク設定を簡単に管理するための デーモン。
無線 LAN、イーサネット接続、VPN など、さまざまなネットワークインターフェースを $ nmcli によって統合して管理できる。
/etc/network/interfaces
Debian 系のディストリビューションにおけるネットワークのインターフェース設定ファイル。
IP アドレスに関わる設定やデフォルトゲートウェイなどの設定が行われる。
/etc/sysconfig/network-scripts/
Red Hat 系ディストリビューションにおけるネットワークの設定ファイルが配置されたディレクトリ。
$ nmcli
NetworkManager の制御を行うコマンド。
$ nmcli 操作対象 サブコマンド
| 操作対象 | 説明 |
|---|---|
general |
NetworkManager の管理 |
device |
ネットワークインターフェースの表示、管理 |
connection |
ネットワーク接続の管理(接続の確立、編集、切断) |
networking |
ネットワークの状態を表示、機能の有効化、無効化 |
radio |
ワイヤレスデバイス(Wi-Fi、Bluetooth)の管理 |
agent |
ネットワークの認証エージェントを管理 |
monitor |
ネットワークの状態を監視 |
$ nmcli general status
$ nmcli general hostname
$ nmcli device
$ nmcli device status
$ nmcli device wifi list
$ nmcli device wifi connect "SSID" password "パスワード"
$ nmcli device disconnect インターフェース名
$ nmcli conection show
$ nmcli networking off
$ nmcli networking on
$ nmcli monitor
$ ifconfig
Interface Configuration
ネットワークインターフェースの設定や状態を確認するコマンド。
現在では、より新しく高機能な $ ip を使用することが推奨されている。
$ ifconfig
インターフェースに関する情報は、内部的には /proc/net/dev から取得して表示している。
$ ifconfig -a
$ ifconfig インターフェース
$ ifconfig インターフェース up
$ ifconfig インターフェース down
$ ifup / $ ifdown
interface up / interface down
$ ifup ネットワークインターフェース
$ ifdown ネットワークインターフェース
$ ip link
データリンク層のインターフェース設定を行う。
$ ip link show
$ ip -s link show
※ RX = Receive(受信)、TX = Transmit(送信)
$ ip -s link show dev インターフェース名
$ ip link set up dev インターフェース名
$ ip link set dev インターフェース名 up
$ ip link set インターフェース名 up
$ ip link set down dev インターフェース名
$ ip link set dev インターフェース名 down
$ ip link set インターフェース名 down
$ ip addr
$ ip addr show
$ ip addr show インターフェース名
$ ip addr add IPv4アドレス dev インターフェース名
$ ip -6 addr add IPv6アドレス dev インターフェース名
$ ip addr add IPアドレス dev インターフェース名 label ラベル
$ ip addr del IPアドレス dev インターフェース名
ネットワーク設定(無線)
$ iwconfig
ワイヤレスネットワークインターフェース(Wi-Fi)の設定や確認を行うためのツール。
有線 LAN の設定に使う $ ifconfig の無線 LAN 専用版というイメージ。
実務では後継版の $ iw 使用が推奨。
$ iwconfig
$ iwconfig インターフェース essid "新SSID"
$ iwconfig インターフェース mode モード
※ モード: Managed、Master、Ad-Hoc、Monitor など
$ iwlist
無線 LAN インターフェースの詳細情報を取得する。
$ iw に置き換わりつつある。
$ iwlist インターフェース scan
$ iw
$ iwconfig の後継。
phy は無線 LAN の「物理デバイス(チップや無線ハードウェア)」を表す。そのチップがどの規格に対応しているか(802.11a / b / g / n / ac / ax)、使える周波数帯やチャンネル、最大送信出力、対応モード(AP / monitor など) といったハードウェアの持つスペックを表示できる。
$ iw phy
一方、dev は OS が phy から作成したネットワークインターフェースを表す。ネットワークインターフェースは、例えば wlan0 や wlp2s0 のような実際に IP アドレスを持ち通信を行うインターフェースを指す。dev は 1 つの phy から複数の作ることができる。
$ iw dev
ネットワーク設定(サービス)
DISCARD
ネットワーク機器やソフトウェアのテストやデモ用途で使用されるプロトコル。
ポート番号は 9。
送信されたデータをそのまま捨て(discard)、レスポンスは一切返さない。
送信処理が正常にできているかだけを確認したいとき(受信結果は無視)や、パケットを大量に送り、スループット(一定時間内に処理できる量)を測定したい時などに利用される。
/etc/services
各サービスにはエイリアスを定義することができる(スペース区切りで複数定義可)。
sink や null は DISCARD プロトコルのエイリアス。
サービス ポート番号/プロトコル エイリアス1 エイリアス2 ...
例
# Network services, Internet style
#
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
#
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
whois 43/tcp nicname
tacacs 49/tcp # Login Host Protocol (TACACS)
tacacs 49/udp
domain 53/tcp # Domain Name Server
domain 53/udp
bootps 67/udp
bootpc 68/udp
tftp 69/udp
gopher 70/tcp # Internet Gopher
finger 79/tcp
http 80/tcp www # WorldWideWeb HTTP
kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5
kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5
iso-tsap 102/tcp tsap # part of ISODE
acr-nema 104/tcp dicom # Digital Imag. & Comm. 300
pop3 110/tcp pop-3 # POP version 3
sunrpc 111/tcp portmapper # RPC 4.0 portmapper
sunrpc 111/udp portmapper
auth 113/tcp authentication tap ident
nntp 119/tcp readnews untp # USENET News Transfer Protocol
ntp 123/udp # Network Time Protocol
epmap 135/tcp loc-srv # DCE endpoint resolution
netbios-ns 137/udp # NETBIOS Name Service
netbios-dgm 138/udp # NETBIOS Datagram Service
netbios-ssn 139/tcp # NETBIOS session service
imap2 143/tcp imap # Interim Mail Access P 2 and 4
snmp 161/tcp # Simple Net Mgmt Protocol
snmp 161/udp
snmp-trap 162/tcp snmptrap # Traps for SNMP
snmp-trap 162/udp snmptrap
cmip-man 163/tcp # ISO mgmt over IP (CMOT)
cmip-man 163/udp
cmip-agent 164/tcp
cmip-agent 164/udp
mailq 174/tcp # Mailer transport queue for Zmailer
xdmcp 177/udp # X Display Manager Control Protocol
bgp 179/tcp # Border Gateway Protocol
smux 199/tcp # SNMP Unix Multiplexer
qmtp 209/tcp # Quick Mail Transfer Protocol
z3950 210/tcp wais # NISO Z39.50 database
ipx 213/udp # IPX [RFC1234]
ptp-event 319/udp
ptp-general 320/udp
pawserv 345/tcp # Perf Analysis Workbench
zserv 346/tcp # Zebra server
rpc2portmap 369/tcp
rpc2portmap 369/udp # Coda portmapper
codaauth2 370/tcp
codaauth2 370/udp # Coda authentication server
clearcase 371/udp Clearcase
ldap 389/tcp # Lightweight Directory Access Protocol
ldap 389/udp
svrloc 427/tcp # Server Location
svrloc 427/udp
https 443/tcp # http protocol over TLS/SSL
https 443/udp # HTTP/3
snpp 444/tcp # Simple Network Paging Protocol
microsoft-ds 445/tcp # Microsoft Naked CIFS
kpasswd 464/tcp
kpasswd 464/udp
submissions 465/tcp ssmtp smtps urd # Submission over TLS [RFC8314]
saft 487/tcp # Simple Asynchronous File Transfer
isakmp 500/udp # IPSEC key management
rtsp 554/tcp # Real Time Stream Control Protocol
rtsp 554/udp
nqs 607/tcp # Network Queuing system
asf-rmcp 623/udp # ASF Remote Management and Control Protocol
qmqp 628/tcp
ipp 631/tcp # Internet Printing Protocol
ldp 646/tcp # Label Distribution Protocol
ldp 646/udp
#
# UNIX specific services
#
exec 512/tcp
biff 512/udp comsat
login 513/tcp
who 513/udp whod
shell 514/tcp cmd syslog # no passwords used
syslog 514/udp
printer 515/tcp spooler # line printer spooler
talk 517/udp
ntalk 518/udp
route 520/udp router routed # RIP
gdomap 538/tcp # GNUstep distributed objects
gdomap 538/udp
uucp 540/tcp uucpd # uucp daemon
klogin 543/tcp # Kerberized `rlogin' (v5)
kshell 544/tcp krcmd # Kerberized `rsh' (v5)
dhcpv6-client 546/udp
dhcpv6-server 547/udp
afpovertcp 548/tcp # AFP over TCP
nntps 563/tcp snntp # NNTP over SSL
submission 587/tcp # Submission [RFC4409]
ldaps 636/tcp # LDAP over SSL
ldaps 636/udp
tinc 655/tcp # tinc control port
tinc 655/udp
silc 706/tcp
kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
#
domain-s 853/tcp # DNS over TLS [RFC7858]
domain-s 853/udp # DNS over DTLS [RFC8094]
rsync 873/tcp
ftps-data 989/tcp # FTP over SSL (data)
ftps 990/tcp
telnets 992/tcp # Telnet over SSL
imaps 993/tcp # IMAP over SSL
pop3s 995/tcp # POP-3 over SSL
#
# From ``Assigned Numbers'':
#
#> The Registered Ports are not controlled by the IANA and on most systems
#> can be used by ordinary user processes or programs executed by ordinary
#> users.
#
#> Ports are used in the TCP [45,106] to name the ends of logical
#> connections which carry long term conversations. For the purpose of
#> providing services to unknown callers, a service contact port is
#> defined. This list specifies the port used by the server process as its
#> contact port. While the IANA can not control uses of these ports it
#> does register or list uses of these ports as a convienence to the
#> community.
#
socks 1080/tcp # socks proxy server
proofd 1093/tcp
rootd 1094/tcp
openvpn 1194/tcp
openvpn 1194/udp
rmiregistry 1099/tcp # Java RMI Registry
lotusnote 1352/tcp lotusnotes # Lotus Note
ms-sql-s 1433/tcp # Microsoft SQL Server
ms-sql-m 1434/udp # Microsoft SQL Monitor
ingreslock 1524/tcp
datametrics 1645/tcp old-radius
datametrics 1645/udp old-radius
sa-msg-port 1646/tcp old-radacct
sa-msg-port 1646/udp old-radacct
kermit 1649/tcp
groupwise 1677/tcp
l2f 1701/udp l2tp
radius 1812/tcp
radius 1812/udp
radius-acct 1813/tcp radacct # Radius Accounting
radius-acct 1813/udp radacct
cisco-sccp 2000/tcp # Cisco SCCP
nfs 2049/tcp # Network File System
nfs 2049/udp # Network File System
gnunet 2086/tcp
gnunet 2086/udp
rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99
rtcm-sc104 2101/udp
gsigatekeeper 2119/tcp
gris 2135/tcp # Grid Resource Information Server
cvspserver 2401/tcp # CVS client/server operations
venus 2430/tcp # codacon port
venus 2430/udp # Venus callback/wbc interface
venus-se 2431/tcp # tcp side effects
venus-se 2431/udp # udp sftp side effect
codasrv 2432/tcp # not used
codasrv 2432/udp # server port
codasrv-se 2433/tcp # tcp side effects
codasrv-se 2433/udp # udp sftp side effect
mon 2583/tcp # MON traps
mon 2583/udp
dict 2628/tcp # Dictionary server
f5-globalsite 2792/tcp
gsiftp 2811/tcp
gpsd 2947/tcp
gds-db 3050/tcp gds_db # InterBase server
icpv2 3130/udp icp # Internet Cache Protocol
isns 3205/tcp # iSNS Server Port
isns 3205/udp # iSNS Server Port
iscsi-target 3260/tcp
mysql 3306/tcp
ms-wbt-server 3389/tcp
nut 3493/tcp # Network UPS Tools
nut 3493/udp
distcc 3632/tcp # distributed compiler
daap 3689/tcp # Digital Audio Access Protocol
svn 3690/tcp subversion # Subversion protocol
suucp 4031/tcp # UUCP over SSL
sysrqd 4094/tcp # sysrq daemon
sieve 4190/tcp # ManageSieve Protocol
epmd 4369/tcp # Erlang Port Mapper Daemon
remctl 4373/tcp # Remote Authenticated Command Service
f5-iquery 4353/tcp # F5 iQuery
ntske 4460/tcp # Network Time Security Key Establishment
ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947]
iax 4569/udp # Inter-Asterisk eXchange
mtn 4691/tcp # monotone Netsync Protocol
radmin-port 4899/tcp # RAdmin Port
sip 5060/tcp # Session Initiation Protocol
sip 5060/udp
sip-tls 5061/tcp
sip-tls 5061/udp
xmpp-client 5222/tcp jabber-client # Jabber Client Connection
xmpp-server 5269/tcp jabber-server # Jabber Server Connection
cfengine 5308/tcp
mdns 5353/udp # Multicast DNS
postgresql 5432/tcp postgres # PostgreSQL Database
freeciv 5556/tcp rptp # Freeciv gameplay
amqps 5671/tcp # AMQP protocol over TLS/SSL
amqp 5672/tcp
amqp 5672/sctp
x11 6000/tcp x11-0 # X Window System
x11-1 6001/tcp
x11-2 6002/tcp
x11-3 6003/tcp
x11-4 6004/tcp
x11-5 6005/tcp
x11-6 6006/tcp
x11-7 6007/tcp
gnutella-svc 6346/tcp # gnutella
gnutella-svc 6346/udp
gnutella-rtr 6347/tcp # gnutella
gnutella-rtr 6347/udp
redis 6379/tcp
sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service
sge-execd 6445/tcp sge_execd # Grid Engine Execution Service
mysql-proxy 6446/tcp # MySQL Proxy
babel 6696/udp # Babel Routing Protocol
ircs-u 6697/tcp # Internet Relay Chat via TLS/SSL
bbs 7000/tcp
afs3-fileserver 7000/udp
afs3-callback 7001/udp # callbacks to cache managers
afs3-prserver 7002/udp # users & groups database
afs3-vlserver 7003/udp # volume location database
afs3-kaserver 7004/udp # AFS/Kerberos authentication
afs3-volser 7005/udp # volume managment server
afs3-bos 7007/udp # basic overseer process
afs3-update 7008/udp # server-to-server updater
afs3-rmtsys 7009/udp # remote cache manager service
font-service 7100/tcp xfs # X Font Service
http-alt 8080/tcp webcache # WWW caching service
puppet 8140/tcp # The Puppet master service
bacula-dir 9101/tcp # Bacula Director
bacula-fd 9102/tcp # Bacula File Daemon
bacula-sd 9103/tcp # Bacula Storage Daemon
xmms2 9667/tcp # Cross-platform Music Multiplexing System
nbd 10809/tcp # Linux Network Block Device
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
amanda 10080/tcp # amanda backup services
dicom 11112/tcp
hkp 11371/tcp # OpenPGP HTTP Keyserver
db-lsp 17500/tcp # Dropbox LanSync Protocol
dcap 22125/tcp # dCache Access Protocol
gsidcap 22128/tcp # GSI dCache Access Protocol
wnn6 22273/tcp # wnn6
#
# Datagram Delivery Protocol services
#
rtmp 1/ddp # Routing Table Maintenance Protocol
nbp 2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol
#=========================================================================
# The remaining port numbers are not as allocated by IANA.
#=========================================================================
# Kerberos (Project Athena/MIT) services
kerberos4 750/udp kerberos-iv kdc # Kerberos (server)
kerberos4 750/tcp kerberos-iv kdc
kerberos-master 751/udp kerberos_master # Kerberos authentication
kerberos-master 751/tcp
passwd-server 752/udp passwd_server # Kerberos passwd server
krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation
zephyr-srv 2102/udp # Zephyr server
zephyr-clt 2103/udp # Zephyr serv-hm connection
zephyr-hm 2104/udp # Zephyr hostmanager
iprop 2121/tcp # incremental propagation
supfilesrv 871/tcp # Software Upgrade Protocol server
supfiledbg 1127/tcp # Software Upgrade Protocol debugging
#
# Services added for the Debian GNU/Linux distribution
#
poppassd 106/tcp # Eudora
moira-db 775/tcp moira_db # Moira database
moira-update 777/tcp moira_update # Moira update protocol
moira-ureg 779/udp moira_ureg # Moira user registration
spamd 783/tcp # spamassassin daemon
skkserv 1178/tcp # skk jisho server port
predict 1210/udp # predict -- satellite tracking
rmtcfg 1236/tcp # Gracilis Packeten remote config server
xtel 1313/tcp # french minitel
xtelw 1314/tcp # french minitel
zebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # ripd vty (zebra)
ripngd 2603/tcp # ripngd vty (zebra)
ospfd 2604/tcp # ospfd vty (zebra)
bgpd 2605/tcp # bgpd vty (zebra)
ospf6d 2606/tcp # ospf6d vty (zebra)
ospfapi 2607/tcp # OSPF-API
isisd 2608/tcp # ISISd vty (zebra)
fax 4557/tcp # FAX transmission service (old)
hylafax 4559/tcp # HylaFAX client-server protocol (new)
munin 4949/tcp lrrd # Munin
rplay 5555/udp # RPlay audio service
nrpe 5666/tcp # Nagios Remote Plugin Executor
nsca 5667/tcp # Nagios Agent - NSCA
canna 5680/tcp # cannaserver
syslog-tls 6514/tcp # Syslog over TLS [RFC5425]
sane-port 6566/tcp sane saned # SANE network scanner daemon
ircd 6667/tcp # Internet Relay Chat
zope-ftp 8021/tcp # zope management by ftp
tproxy 8081/tcp # Transparent Proxy
omniorb 8088/tcp # OmniORB
clc-build-daemon 8990/tcp # Common lisp build daemon
xinetd 9098/tcp
git 9418/tcp # Git Version Control System
zope 9673/tcp # zope server
webmin 10000/tcp
kamanda 10081/tcp # amanda backup services (Kerberos)
amandaidx 10082/tcp # amanda backup services
amidxtape 10083/tcp # amanda backup services
sgi-cmsd 17001/udp # Cluster membership services daemon
sgi-crsd 17002/udp
sgi-gcd 17003/udp # SGI Group membership daemon
sgi-cad 17004/tcp # Cluster Admin daemon
binkp 24554/tcp # binkp fidonet protocol
asp 27374/tcp # Address Search Protocol
asp 27374/udp
csync2 30865/tcp # cluster synchronization tool
dircproxy 57000/tcp # Detachable IRC Proxy
tfido 60177/tcp # fidonet EMSI over telnet
fido 60179/tcp # fidonet EMSI over TCP
# Local services
/etc/hosts.allow / /etc/hosts.deny
TCP Wrappers と呼ばれるアクセス制御システムで使用される設定ファイル。
特定のサービス(デーモン)に対する接続の許可、または拒否を設定するために使用される。サービス名にはデーモン名を指定することができる。
サービス名: ホスト
サービス名: IPアドレス
/etc/hosts.allow が読み込まれた後に /etc/hosts.deny が読み込まれる。どちらにも記載がないものは 許可 になる。
そのため許可するものを /etc/hosts.allow に記載しておき、/etc/hosts.deny では ALL を拒否対象としておく組み合わせが一般的。
ALL: ALL
$ nmap
Network Mapper
ネットワークのスキャンを行うためのツールで、オープンポートの検出(ポートスキャン)、サービスの確認、OS の推定などを行うことができる。
ネットワーク管理者がセキュリティ診断やトラブルシューティングに利用するほか、攻撃者が脆弱性を探るためにも使われる。
$ nmap IPアドレス
$ nmap ホスト
$ nmap -O IPアドレス
ネットワーク設定(ARP)
$ arp
ARP キャッシュ(動的な APR テーブル)を表示、操作する。
$ arp
$ arp -n
$ arp -s IPアドレス MACアドレス
$ arp -s ホスト MACアドレス
$ arp -d IPアドレス
$ arp -d ホスト
$ arp -i インターフェース
$ ip neigh / $ ip neighbor
$ ip neigh show
$ ip neigh add IPアドレス lladdr MACアドレス dev インタフェース名
$ ip neigh del IPアドレス lladdr MACアドレス dev インターフェース名
$ ip neigh del IPアドレス dev インターフェース名
ネットワーク設定(ルーティング)
$ route
現在では、より新しく高機能な $ ip を使用することが推奨されている。
ルーティングテーブルを表示したり、操作することができる。
Net-Tools($ ifconfig、$ netstat などと同じ、古いツール群)の一部。
$ route
$ route -n
実行例
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp0s1
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s1
_gateway 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s1
10.0.2.3 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s1
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 enp0s1
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s1
10.0.2.2 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s1
10.0.2.3 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s1
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
| オプション | 説明 |
|---|---|
Destination |
宛先ネットワーク、またはホスト |
Gateway |
パケットを次に渡すゲートウェイの IPアドレス(直結なら 0.0.0.0) |
Genmask |
サブネットマスク |
Flags |
U=有効(Up)、G=ゲートウェイ経由(Gateway)、H=ホスト(Host)、!=拒否 |
Metric |
経路の優先度(厳密には宛先までの距離。小さいほど優先される。) |
Iface |
出口となるインターフェース(eth0 など) |
$ route add -net 宛先 netmask サブネットマスク gw ゲートウェイ dev インターフェース
$ route add -host 宛先 gw ゲートウェイ
$ route add default gw デフォルトゲートウェイ
$ route del -net 宛先 netmask サブネットマスク
$ route del -host 宛先
$ route del default
$ ip route
ルーティングテーブル
$ ip route show
$ ip route show
宛先アドレス via ゲートウェイ dev ネットワークインターフェース名 proto エントリ生成元 scope 到達範囲 src 送信元アドレス metric 優先度
| 項目 | 補足 |
|---|---|
宛先アドレス |
default:デフォルトルート |
proto |
dhcp:DHCP によって追加されたことを表す。static:手動で追加されたことを表す。kernel:カーネルがインターフェース設定時に自動追加したことを表す。 |
scope |
link:同じリンク内で有効(ゲートウェイを経由せず、ARP や NDP で直接到達可能)global:ルーターを越えて到達可能(インターネット含む)host:ローカルホスト内だけで有効(PC 内の 127.0.0.1 など)nowhere:到達不能ルート(破棄ルート) |
metric 優先度 |
小さい方が優先度が高い。 |
実行例
$ ip route show
default via 10.0.2.2 dev enp0s1 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s1 proto kernel scope link src 10.0.2.15 metric 100
10.0.2.2 dev enp0s1 proto dhcp scope link src 10.0.2.15 metric 100
10.0.2.3 dev enp0s1 proto dhcp scope link src 10.0.2.15 metric 100
via で指定するゲートウェイは、ルータの場合「ネクストホップ」と呼ばれる。ネクストホップは自身から直接到達可能な範囲にいる必要がある。
$ ip route add 宛先 via ゲートウェイ dev インターフェース
$ ip route add via ゲートウェイ 宛先 dev インターフェース
ルータを介する必要がない場合、via の指定は不要。
$ ip route add 宛先 dev インターフェース
$ ip route add default via ゲートウェイ dev インターフェース
$ ip route add via ゲートウェイ dev インターフェース # 宛先を指定しない場合、デフォルトルートになる
$ ip route del 宛先
$ ip route del default via ゲートウェイ
$ ip route del default
ネットワーク設定(全般)
$ ip
ネットワーク設定を管理するための標準コマンド。
従来の $ ifconfig、$ route、$ netstat などに換わる新しいツール(iproute2 パッケージ)として提供される。
$ ip 操作対象 サブコマンド オプション dev デバイス名
$ ip 操作対象 サブコマンド オプション # デバイス名を省略するとすべてのインターフェースが対象
| 操作対象 | 説明 |
|---|---|
addr |
IP アドレス |
link |
データリンク層 のインターフェース |
route / r |
ルーティング |
neigh |
ARP テーブル(キャッシュ) |
tunnel |
トンネル設定 |
| サブコマンド | 説明 |
|---|---|
show / list
|
表示する(デフォルト) |
add |
追加する |
del |
削除する |
set |
設定する |
up |
有効化する |
down |
無効化する |
show がデフォルトのため、省略することができる。list は show のエイリアスとして実装されている。
$ ip addr # 省略できる
$ ip addr show
$ ip link # 省略できる
$ ip link show
$ ip route # 省略できる
$ ip route show
$ ip neigh # 省略できる
$ ip neigh show
名前解決(ローカル)
/etc/hostname
自身のホスト名が記述された設定ファイル。
ホスト名はネットワーク上で通信相手を識別するために利用される。
ホスト名
$ hostname で確認、変更することができる。
/etc/hosts
IP アドレスとホスト名の対応関係が記述された設定ファイル。
スペース区切りでエイリアスを定義することができる。非エイリアスのホスト名を canonical hostname (正規ホスト名)と表現されることがある。
IPアドレス ホスト名 エイリアス1 エイリアス2 ...
小規模なネットワークにおける名前解決に利用されるが、管理に手間がかかるため、通常、大規模なネットワークでは DNS が利用される。
例
127.0.0.1 localhost
127.0.1.1 ホスト名
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/networks
/etc/hosts のネットワークアドレス版。
ネットワーク名 IPアドレス(ネットワークアドレス)
名前解決(DNS)
/etc/resolv.conf
DNS サーバの設定ファイル。
domain ドメイン
search ドメイン
nameserver IPアドレス
nameserver IPアドレス
options timeout:1 attempts:2
DHCP や NetworkManager が自動的にファイルを更新するため、手動で変更しても上書きされることがある。
domain
自身が所属するローカルのドメイン名を定義する。
ドメインを含まないホスト名を検索する場合に検索対象となる。
domain と search はどちらか一方しか設定することはできず、両方が記述された場合、より下に記述された設定が使用される。
domain example.com
search
検索対象のドメインをリスト形式で記述する。
search を設定しておくと、ホスト名以降のドメイン(ドット . 以降の部分)が指定されなくても補完して名前解決できる。
例えば example.com や example.local をサーチドメインに設定しておくことで、example というホスト名だけで名前解決しようとしたときに設定しておいたドメインが検索対象に追加される。
search example.com example.local
と設定しておくと、example というホスト名に対して、まず example.com が、次に example.local の名前解決を試みることになる。
nameserver
使用する DNS サーバを指定する。
nameserver IPアドレス1
nameserver IPアドレス2
このように複数設定した場合は上から順に使用される。
options
タイムアウト時間や最大再試行回数などの DNS クエリに関する設定を追加する。
/etc/systemd/resolved.conf
systemd の サービスの一つである systemd-resolved.service で DNS 名前解決に利用される設定ファイル。
/etc/resolv.conf に依存しない仕組みになっている。
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
#CacheFromLocalhost=no
#DNSStubListener=yes
#DNSStubListenerExtra=
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no
#StaleRetentionSec=0
名前解決(DNS:BIND)
Berkeley Internet Name Domain
代表的な DNS サーバソフトウェア。
BIND をインストールしてセットアップすることで、マシンが DNS サーバとして機能する。実際には named デーモンが DNS サーバの中核を担っている。
named は /etc/named.conf を参照しながら起動し、サービスとして常駐することで DNS クライアントからの問い合わせに応答する。
/etc/named.conf
BIND の設定ファイル。
{} で囲われた「ステートメント」と「オプション」から構成される。
ステートメント {
オプション;
};
ステートメントを構成する要素は以下の通り。
options
BIND 全体のデフォルト設定を記述するステートメント。
options {
オプション;
}
指定できるオプション
| オプション | 内容 |
|---|---|
directory |
ゾーンファイル(DNS サーバが保持する設定ファイル)の配置先ディレクトリ(絶対パス)。 ファイル名は zone ステートメントの file オプションで指定する。【例】 directory "/var/named";
|
recursion |
再帰的な問い合わせを受け付けるかどうか。 キャッシュサーバなら yes、コンテンツサーバなら no。【例】 recursion yes;
|
recursive-clients |
再帰的な問い合わせを同時に受け付けるクライアント数。 【例】 recursive-clients 1000;
|
max-cache-size |
キャッシュサイズ(バイト単位)。設定しない場合、無制限になる。 【例】 max-cache-size 60M;
|
forward |
BIND では、キャッシュ DNS サーバが権威外のゾーン(自分が権威を持たないゾーン)への名前解決が必要な場合に、ルート DNS サーバではなく、指定した DNS サーバに問い合わせを転送できる。only を指定すると forwarders で指定した DNS サーバにだけ転送し、それでも解決できなかった場合、自身では再帰問い合わせを行わない。first を指定すると、forwarders に問い合わせを転送するが、それでも解決できなかった場合は、その後は自分で再帰問い合わせを行う(デフォルト動作)。【例】 forward only;
|
forwarders |
権威外のゾーンにおける名前解決が必要な場合の問い合わせ転送先 DNS サーバ(複数指定可)。 【例】 forwarders { 8.8.8.8; 1.1.1.1; };
|
notify |
ゾーン情報が更新をプライマリサーバからセカンダリサーバに通知するかどうか(yes でプライマリサーバで変更検知時にセカンダリサーバに即通知する、no でセカンダリサーバの定期チェックに従う。)。【例】 notify yes;
|
allow-transfer |
ゾーン転送 を許可するサーバ。 セカンダリサーバだけに限定する設定が一般的。 【例】 allow-transfer;
|
allow-query |
問い合わせを許可するサーバ。 特定の IP アドレスの他、 any、none が指定できる。【例】 allow-query { any; };
|
blackhole |
問い合わせを拒否するサーバ(正確には問い合わせを完全無視する)。 【例】 blackhole { 192.0.2.100; 198.51.100.0/24; };
|
zone
ゾーン ごとに個別の設定、定義をするステートメント。
zone "ゾーン名" クラス {
オプション;
};
ゾーン名 には管理対象のドメイン名(example.com など)を指定する。定義したゾーン名はゾーンファイルの SOA レコード で @ として表現できるようになる。
クラス は省略も可能で、通常は IN(インターネットクラス)を指定する。
指定できるオプション
| オプション | 内容 |
|---|---|
type |
ゾーンの種類。master:自身がプライマリサーバ(権威)であることが表す。slave:自身がセカンダリサーバ(権威)であることを表す。hint:権威を持たないゾーンで、キャッシュ DNS サーバが名前解決を開始するためのルートサーバ情報を格納するゾーン。キャッシュ DNS サーバが最初に問い合わせを行う際の起点となる。forward:全ての問い合わせを指定のサーバへ転送するゾーン。キャッシュ DNS サーバが権威外の問い合わせをルート DNS サーバ以外の特定のサーバに転送する場合に使用する。転送しても解決できなかった場合の挙動は options ステートメントの forward で指定することができる。【例】 type master;
|
file |
各種ファイル名。 【 type master; もしくは type slave; の場合】ゾーンファイル名。ディレクトリは options ステートメントの directory で指定する。絶対パスでファイルを指定した場合、options の指定は無視される。【 type hint; の場合】一番最初に問い合わせを行う ルート DNS サーバ の情報が記述されたファイル名。 【 type forward; の場合】利用されない。 【例】 file "example.com.zone";
|
masters |
type が slave の時に、プライマリサーバを指定する。【例】 masters { 192.168.120.2; };
|
allow-transfer |
ゾーン転送 を許可するサーバ。 セカンダリサーバだけに限定する設定が一般的。 【例】 allow-transfer;
|
allow-query |
問い合わせを許可するサーバ。 【例】 allow-query { any; };
|
notify |
ゾーン更新時に、セカンダリサーバに即通知を行うか。 【例】 notify yes;
|
forwarders |
type が forward の場合に転送先の DNS サーバを指定。【例】 forwarders { 8.8.8.8; 1.1.1.1; };
|
controls
BIND を外部から制御するための設定。
$ rndc からの操作を受け付ける際に利用される。
controls {
inet IPアドレス port ポート番号
allow { ホスト名; } keys { "キー"; };
};
inet IPアドレス port ポート番号 は BIND が $ rndc からの接続を待ち受ける IP アドレスと ポート番号。
allow は接続を許可するクライアントの IP アドレス。localhost とすることで、ローカルホストからの接続のみが許可される。
key は認証に使用されるキーを指定する。/etc/rndc.key や /etc/rndc.conf にあるキーと一致している必要がある。
controls {
inet 127.0.0.1 port 953
allow { localhost; } keys { "abcdefg"; };
};
acl
Access Control List
クライアントからのアクセスを制御するためのステートメント。
acl ACL名 {
アドレスマッチリスト;
};
アドレスマッチリスト には、アクセスを許可する IP アドレスやネットワークを並べて記述する。特定の IP アドレス以外に any、localhost、localnets(サーバ自身が所属するネットワーク)、none を指定することもできる。
また、ここで定義した ACL 名は options ステートメントの alow-query、allow-recursion、alloq-transfer、blackhole で使用することができるようになる。
include
/etc/named.conf を複数のファイルに分割して管理するためのステートメント。
include "ファイルパス";
ファイルパス には絶対パスを使うのが一般的。
/etc/named.conf 内で include "ファイルパス"; を記述すると、その場所に別ファイルの内容が展開されるイメージ。
key
認証キーの定義ステートメント。
key "キー名" {
algorithm アルゴリズム;
secret "鍵情報";
};
algorithm では hmac-sha256 や hmac-sha512 が利用される。
secret には base64 でエンコードした鍵情報を記述する。鍵自体は $ rndc-condgen で作成する。
設定例($ rndc 用)
$ rndc コマンドを実行する環境側。
key "rndc-key" {
algorithm hmac-sha256;
secret "abcdefgh1234567890==";
};
options {
default-server 127.0.0.1;
default-key "rndc-key";
};
DNS サーバ側。
key "rndc-key" {
algorithm hmac-sha256;
secret "abcdefgh1234567890==";
};
controls {
inet 127.0.0.1 port 953
allow { localhost; } keys { "rndc-key"; };
};
設定例(ゾーン転送)
key "zone-transfer-key" {
algorithm hmac-sha256;
secret "abcdefgh1234567890==";
};
server 192.168.1.2 {
keys { "zone-transfer-key"; };
};
zone "example.com" {
type master;
file "example.com.zone";
allow-transfer { key zone-transfer-key; };
};
key "zone-transfer-key" {
algorithm hmac-sha256;
secret "abcdefgh1234567890==";
};
server 192.168.1.2 {
keys { "zone-transfer-key"; };
};
zone "example.com" {
type slave;
file "example.com.zone";
allow-transfer { key zone-transfer-key; };
};
named.root
キャッシュ DNS サーバが最初に問い合わせを行うコンテンツサーバ(ルート DNS サーバ)の IP アドレスを記述するためのヒントファイル。
options ステートメントで以下のように使う。
zone "." IN {
type hint;
file "named.root";
};
ルート DNS サーバは頻繁に更新されるものではないが、IANA のサイトで公開されている(このページ では named.root に相当するファイルが公開されているので、ダウンロードしてそのまま使用することができる)。
$ named-checkconf
/etc/named.conf の構文チェックを行う。
デフォルトでは /etc/named.conf または /etc/bind/named.conf を対象にする(環境による)。
$ named-checkconf
$ named-checkconf 設定ファイル
$ named-checkzone
ゾーンファイル の構文チェックを行う。
$ named-checkzone ゾーン名 ゾーンファイル
$ rndc
Remote Name Daemon Control
named デーモンが稼働する DNS サーバを外部から制御する管理コマンド。
ゾーンの再読み込み、キャッシュのクリア、統計情報の取得などを行う。
/etc/named.conf の controls ステートメントで外部からの操作が許可されている必要がある。
$ rndc status
$ rndc stop
$ rndc reload ドメイン
$ rndc reconfig
$ rndc restart
$ rndc stat
$ rndc flush
$ rndc-confgen
$ rndc-confgen -a
キーは /etc/rndc.key に生成される。ファイル内には key ステートメント が記述されるため、include ステートメント で生成されたファイルパスを指定するだけで使える。。
$ rndc-confgen
出力内容をこのままコピペして named.conf(DNS サーバ側の設定ファイル)と rndc.conf($ rndc 側の設定ファイル)に分けて書けば、$ rndc が使えるようになる。
$ host
DNS の問い合わせを行うためのツール。
ホスト名の IP アドレス解決や、逆引き(IP アドレスからホスト名)に利用される。
$ host ホスト名
$ host IPアドレス
$ dig
Domain Information Groper(grope=探る)
DNS サーバに問い合わせを行い情報を取得するツール。
$ host よりも詳細な情報が取得できる。
$ dig ホスト名
$ dig -x IPアドレス
クエリタイプ を指定することで、レコードタイプ(リソースレコード)を指定することができる。
$ dig ホスト名 レコードタイプ
指定できるレコードタイプ
| レコードタイプ | 意味 |
|---|---|
A |
ホスト名に対応する IPv4 アドレス |
AAAA |
ホスト名に対応する IPv6 アドレス |
CNAME |
別名(エイリアス) |
PTR |
IP アドレスに対応するホスト名(逆引き用) |
MX |
メールサーバ |
NS |
ネームサーバ |
SOA |
ゾーンに関する情報 |
AXFR |
ゾーン転送 |
TXT |
任意のレコード |
ANY |
全てのレコード |
HINFO |
ホスト情報 |
オプションなしで実行すると .(ルートゾーン)に対する A レコード を問い合わせる。
$ dig googlg.com
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> googlg.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13176
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;googlg.com. IN A
;; AUTHORITY SECTION:
googlg.com. 300 IN SOA ns1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
;; Query time: 67 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Wed Aug 27 20:17:44 UTC 2025
;; MSG SIZE rcvd: 121
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13176
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
flags |
意味 |
|---|---|
qr |
Query Response 問い合わせに対する応答であることを表す。 |
rd |
Recursive Desired 再帰的問い合わせの要求があったことを表す。 |
ra |
Recursion Available サーバから再帰的問い合わせが可能であると応答があったことを表す。 |
aa |
Authoritative Answer 応答がコンテンツサーバからのものであることを表す。 |
-
status: NOERROR- エラーがなかった(名前解決に成功した)ことを表す
-
ANSWER: 0- 回答は 0 件(A レコードは得られなかった)
-
AUTHORITY: 1- 権威サーバ情報が 1 件返ってきた
;; QUESTION SECTION:
;googlg.com. IN A
googlg.com. の A レコードを問い合わせたことが表す。IN は インターネットクラス。
;; AUTHORITY SECTION:
googlg.com. 300 IN SOA ns1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
SOA レコード が応答されたことを表す。300 は TTL(Time To Live:キャッシュサーバがキャッシュを保持する秒数)。
google.com ではなく google.com. で問い合わせをすると、A レコードが返ってきた。
実行例
$ dig google.com.
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> google.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48705
;; flags: qr rd ra; QUERY: 1, ANSWER: 1 👈 , AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 164 IN A 142.251.222.14 👈
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Wed Aug 27 21:19:30 UTC 2025
;; MSG SIZE rcvd: 55
$ nslookup
Name Server Lookup
DNS による名前解決のテスト用コマンド。
$ nslookup ホスト名
$ nslookup IPアドレス
$ nslookup ホスト名 DNSサーバのIPアドレス
引数を指定しない場合、対話モードになる。
$ nslookup
名前解決(全般)
/etc/nsswitch.conf
Name Service Switch
名前解決の際の問い合わせ順序 を設定するファイル。
検索対象のカテゴリ(データベース)に対して、情報を取得する方法(サービス)を指定する。
サービスは複数指定することができ、左側に記述したサービスで情報が取得できなかった場合にのみ、右側に記述したサービスが順に利用されていく。
データベース名: サービス1 サービス2
例えば、
hosts: files dns
となっていた場合、名前解決の際に、/etc/hosts ファイルを最初に確認し、問い合わせたホスト名が /etc/hosts にない場合には DNS サーバに問い合わる、といった問い合わせ順序となる。
files となっている項目は、その項目に対するローカル環境の設定ファイルが最初の検索対象になる。
例
passwd: files systemd
group: files systemd
shadow: files systemd
gshadow: files systemd
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
passwd
ユーザ情報に関する設定。
ユーザ名をユーザ ID(UID)へ変換する問い合わせ時に利用される。
passwd: files systemd
となっていた場合、最初に files(/etc/passwd)、次に systemd の nss-systemd に対して問い合わせが行われる。
group
グループ情報に関する設定。
グループ名をグループ ID(UID)へ変換する際に利用される。
shadow
ユーザーのパスワード情報に関する設定。
ユーザーのパスワードが格納されたファイルを指定する。
files は /etc/shadow のこと。
hosts
ホスト名解決に関する設定。
ホスト名($ hostname)を IP アドレスに変換する際に利用される。
hosts: files dns
となっていた場合、ホスト名を解決する際は /etc/hosts ファイル → DNS サーバの順に検索が行われる。
$ hostname
$ hostname
$ hostname 新ホスト名
$ hostname によるホスト名の変更は一時的なもので、再起動によって変更が元に戻ってしまう。恒久的に変更したい場合、$ hostnamectlを実行する必要がある。
$ hostname -I
$ hostnamectl
$ hostnamectl
$ hostnamectl status
$ hostnamectl set-hostname 新ホスト名
疎通確認・調査系コマンド
$ curl
Client URL
URL を指定してネットワークからデータを取得、送信するコマンド。
HTTP(S)、FTP、SMTP など、さまざまなプロトコルをサポートしている。
$ curl URL
$ curl -o ファイル名 URL
$ curl -O URL
$ curl -L URL
$ curl -I URL
$ curl -d 送信データ URL
$ curl -X リクエストメソッド URL
$ curl -H ヘッダー情報 URL
$ ping / $ ping6
指定された宛先に対して ICMP Echo Request(パケット) を送信し、そのホストから応答(Echo Reply)があるかどうかで接続を確認するためのツール。
$ ping ホスト名
$ ping IPアドレス
$ ping -c 送信回数 ホスト名 # デフォルトは Ctrl + C で終了するまで延々と送り続ける
$ ping -i 秒数 ホスト名 # デフォルトは 1 秒
IPv6 では $ ping6 を使用する。利用方法は $ ping と同じ。
$ traceroute / $ traceroute6
$ traiceroute ホスト名
$ traiceroute IPアドレス
IPv6 では $ traceroute6 を使用する。
デフォルトでは UDP でパケットを送信する。-I オプションで ICMP パケットに変更することができる。
返答は ICMP パケット(Time Exceeded)にて返ってくる。
※ 詳細な仕組みついては こちら
$ traiceroute ホスト名 -I
$ tracepath / $ tracepath6
$ tracepath ホスト名
$ tracepath IPアドレス
IPv6 では $ tracepath6 を使用する。
$ tcpdump
ネットワークインターフェース上を流れるパケットを取得し、人間が読める形式に解析して表示するパケットキャプチャツール。
$ tcpdump -i インターフェース
$ tcpdump -ni インターフェース
$ tcpdump -i インターフェース port ポート番号
$ tcpdump -i インターフェース host IPアドレス
$ tcpdump -i インターフェース -w ファイル
$ tcpdump -i インターフェース -c パケット数
$ tcpdump -r ファイル
$ tcpdump -i インターフェース -A
$ tcpdump -i インターフェース -X
$ nc
netcat
ネットワーク接続を確立し、データの送受信を行うためのツール。
様々な用途に使用することができる。
- ポートスキャン
- 指定しホストの、どのポートが開いているかを確認する
- TCP / UDP 通信
- サーバとクライアント間でデータを送受信する
- 簡易 Web サーバ
- 一時的に HTTP サーバを起動する
- ファイル転送
- リモートホストとの間でファイルを転送する
| オプション | 説明 |
|---|---|
-l |
指定したポートをリッスンする(listen) |
-p ポート番号 |
使用するポート番号を指定する(port) |
-v |
詳細情報を表示する(verbose) |
-n |
ホスト名ではなく IP アドレスを使う(numeric) |
-z |
接続テストのみで、実際のデータ送受信を行わない。(zero-I/O) ポート番号をスペース区切りで複数指定できる。 |
-u |
UDP を使用する(デフォルトはTCP) |
-p オプションはクライアント側の送信元ポートを指定する。サーバ側のリッスン用ポートの指定には -l を使用する。
$ nc ホスト名 ポート番号
$ nc IPアドレス ポート番号
$ nc -zv example.com 80 443
クライアントとサーバ側でそれぞれ利用することができる。
$ nc -l -p ポート番号
$ nc サーバのIPアドレス サーバのポート番号
$ netstat
Network Statistics
現在では、より新しく高機能な $ ss を使用することが推奨されている。
開いているポート、アクティブな接続、ルーティングテーブル、インターフェースの状態などネットワークの統計情報を表示する。
Net-Tools($ ifconfig、$ route などと同じ、古いツール群)の一部。
$ netstat
接続待ちの状態(state)を LISTEN、接続が確立した状態を ESTABLISHED で表現する。
| オプション | 説明 |
|---|---|
-a--all
|
すべての ソケット 情報を表示する |
-l--listening
|
接続待ち(listen)のソケット情報のみ表示する |
-p--program
|
ソケット、ポートをオープンしているプロセスを表示する |
-t--tcp
|
TCP 接続用ソケット情報のみ表示する |
-u--udp
|
UDP 接続用ソケット情報のみ表示する |
-i--interface
|
ネットワークインターフェースの状態を表示する$ ip -s link と同じ |
-r--route
|
ルーティングテーブルを表示する$ ip route show と同じ |
-s--statistics
|
統計情報を表示する |
$ ss
Socket Statistics
ネットワーク接続の状態を表示するコマンド。
$ netstat の後継版で、オプションなどは $ netstat と同じように使える。
$ ss -a
接続待ちの状態(state)を LISTEN、接続が確立した状態を ESTABLISHED で表現する。
| オプション | 説明 |
|---|---|
-a--all
|
すべての ソケット 情報を表示する |
-l--listening
|
接続待ち(listen)のソケット情報のみ表示する |
-p--program
|
ソケット、ポートをオープンしているプロセスを表示する |
-t--tcp
|
TCP 接続用ソケット情報のみ表示する |
-u--udp
|
UDP 接続用ソケット情報のみ表示する |
-i--interface
|
ネットワークインターフェースの状態を表示する$ ip -s link と同じ |
-r--route
|
ルーティングテーブルを表示する$ ip route show と同じ |
-s--statistics
|
統計情報を表示する |
