0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux ネットワーク DNS BIND

Last updated at Posted at 2025-03-01

LPIC 学習記録として

前提知識

ソケット

$ netstat で表示されるソケット情報の「ソケット」とは、プロセス間通信(IPC: Inter-Process Communication)を行うためのエンドポイント(接続点)を指す。

具体的には IPアドレス + ポート番号(プロトコル) の組み合わせがソケットとして定義されることが多い。

Linux では /proc/ ディレクトリの 仮想ファイル として管理される。

デフォルトゲートウェイ

パケットの宛先がルーティングテーブル中で見つからない場合に使用される送信先。

ルーティングテーブル destination0.0.0.0 として設定される。

命名規則

ネットワーク上のデバイスには、デバイスファイル としての実体は存在しないが、認識された際のインターフェース名には一定の命名規則がある。

古い命名規則

接続(認識)された順に数字が増えていく スタイル。

  • Ethernet
    • eth0eth1eth2 ...
  • Wireless LAN(無線 LAN)
    • wlan0wlan1wlan2 ...
  • PPP
    • ppp0ppp1ppp2 ...

インターフェース名が認識の順序に依存してしまうため、特定の物理的なインターフェースに対して起動のたびに異なるインターフェース名が付与される事態が発生する。

新しい命名規則

物理的な接続位置、ハード自体の持つ情報に基づいて付与される スタイル。

インターフェース名を確認する
$ 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
  • 接続位置、ファームウェアの情報を表現するもの
    • PCI 番号
      • p0p1sp ...
    • onboard(オンボード)
      • o0o1o2 ...
    • スロット
      • マザーボード、もしくはオンボード上の PCI バス上でデバイスが認識される論理的な位置(アドレス)
      • s0s1s2 ...

スロット

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 ネットワークの状態を監視
NetworkManger の状態を表示する
$ nmcli general status
ホスト名を表示する
$ nmcli general hostname
インターフェースの状態を表示する
$ nmcli device
$ nmcli device status
利用可能な Wi-Fi ネットワークのリストを表示する
$ nmcli device wifi list
Wi-Fi ネットワークに接続する
$ 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 アドレスを表示する
$ ip addr show
特定のインターフェースの IP アドレスを表示する
$ ip addr show インターフェース名
IP アドレスを追加する(IPv4)
$ ip addr add IPv4アドレス dev インターフェース名
IP アドレスを追加する(IPv6)
$ ip -6 addr add IPv6アドレス dev インターフェース名
ラベルをつける
$ ip addr add IPアドレス dev インターフェース名 label ラベル
IP アドレスを削除する
$ ip addr del IPアドレス dev インターフェース名

ネットワーク設定(無線)

$ iwconfig

ワイヤレスネットワークインターフェース(Wi-Fi)の設定や確認を行うためのツール。

有線 LAN の設定に使う $ ifconfig の無線 LAN 専用版というイメージ。

実務では後継版の $ iw 使用が推奨。

状態を確認する
$ iwconfig
接続先(SSID)を変更する
$ iwconfig インターフェース essid "新SSID"
モードを変更する
$ iwconfig インターフェース mode モード

※ モード: ManagedMasterAd-HocMonitor など

$ iwlist

無線 LAN インターフェースの詳細情報を取得する。

$ iw に置き換わりつつある。

周囲のアクセスポイントを一覧表示する
$ iwlist インターフェース scan

$ iw

$ iwconfig の後継。

phy は無線 LAN の「物理デバイス(チップや無線ハードウェア)」を表す。そのチップがどの規格に対応しているか(802.11a / b / g / n / ac / ax)、使える周波数帯やチャンネル、最大送信出力、対応モード(AP / monitor など) といったハードウェアの持つスペックを表示できる。

無線デバイスの物理性能や対応規格を表示する(physical)
$ iw phy

一方、dev は OS が phy から作成したネットワークインターフェースを表す。ネットワークインターフェースは、例えば wlan0wlp2s0 のような実際に IP アドレスを持ち通信を行うインターフェースを指す。dev は 1 つの phy から複数の作ることができる。

OS が認識しているインターフェースを一覧表示する
$ iw dev

ネットワーク設定(サービス)

DISCARD

ネットワーク機器やソフトウェアのテストやデモ用途で使用されるプロトコル。

ポート番号は 9

送信されたデータをそのまま捨て(discard)、レスポンスは一切返さない。

送信処理が正常にできているかだけを確認したいとき(受信結果は無視)や、パケットを大量に送り、スループット(一定時間内に処理できる量)を測定したい時などに利用される。

/etc/services

ポート番号サービス の対応関係が記述されたファイル。

各サービスにはエイリアスを定義することができる(スペース区切りで複数定義可)。

sinknullDISCARD プロトコルのエイリアス。

/etc/services のフォーマット
サービス  ポート番号/プロトコル  エイリアス1  エイリアス2 ...
/etc/services(例)
# 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 と呼ばれるアクセス制御システムで使用される設定ファイル。

特定のサービス(デーモン)に対する接続の許可、または拒否を設定するために使用される。サービス名にはデーモン名を指定することができる。

/etc/hosts.allow, /etc/hosts.deny のフォーマット
サービス名: ホスト
サービス名: IPアドレス

/etc/hosts.allow が読み込まれた後に /etc/hosts.deny が読み込まれる。どちらにも記載がないものは 許可 になる。

そのため許可するものを /etc/hosts.allow に記載しておき、/etc/hosts.deny では ALL を拒否対象としておく組み合わせが一般的。

全てを拒否対象にする(/etc/hosts.deny)
ALL: ALL

$ nmap

Network Mapper

ネットワークのスキャンを行うためのツールで、オープンポートの検出(ポートスキャン)、サービスの確認、OS の推定などを行うことができる。

ネットワーク管理者がセキュリティ診断やトラブルシューティングに利用するほか、攻撃者が脆弱性を探るためにも使われる。

ポートスキャンを行う(オープンしているポートを調べる)
$ nmap IPアドレス
$ nmap ホスト
OS を推定する
$ nmap -O IPアドレス

ネットワーク設定(ARP)

$ arp

ARP キャッシュ(動的な APR テーブル)を表示、操作する。

ARP キャッシュを表示する(ホスト名表示)
$ arp 
ARP キャッシュを表示する(numeric:IP アドレス表示)
$ arp -n
エントリを追加する(set)
$ arp -s IPアドレス MACアドレス
$ arp -s ホスト MACアドレス
エントリを削除する(delete)
$ arp -d IPアドレス
$ arp -d ホスト
インターフェースを指定して ARP キャッシュを表示する(interface)
$ arp -i インターフェース

$ ip neigh / $ ip neighbor

ARP テーブルを表示する
$ ip neigh show
ARP テーブルを追加する
$ ip neigh add IPアドレス lladdr MACアドレス dev インタフェース名
ARP テーブルを削除する
$ ip neigh del IPアドレス lladdr MACアドレス dev インターフェース名
$ ip neigh del IPアドレス dev インターフェース名

ネットワーク設定(ルーティング)

$ route

現在では、より新しく高機能な $ ip を使用することが推奨されている。

ルーティングテーブルを表示したり、操作することができる。

Net-Tools($ ifconfig$ netstat などと同じ、古いツール群)の一部。

ルーティングテーブルを表示する
$ route
ホスト名ではなく IP アドレスを表示する(numeric)
$ 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 がデフォルトのため、省略することができる。listshow のエイリアスとして実装されている。

show は省略できる
$ ip addr   # 省略できる
$ ip addr show
$ ip link   # 省略できる
$ ip link show
$ ip route   # 省略できる
$ ip route show
$ ip neigh   # 省略できる
$ ip neigh show

名前解決(ローカル)

/etc/hostname

自身のホスト名が記述された設定ファイル。

ホスト名はネットワーク上で通信相手を識別するために利用される。

/etc/hostname
ホスト名

$ hostname で確認、変更することができる。

/etc/hosts

IP アドレスとホスト名の対応関係が記述された設定ファイル。

スペース区切りでエイリアスを定義することができる。非エイリアスのホスト名を canonical hostname (正規ホスト名)と表現されることがある。

フォーマット
IPアドレス    ホスト名    エイリアス1  エイリアス2 ...

小規模なネットワークにおける名前解決に利用されるが、管理に手間がかかるため、通常、大規模なネットワークでは DNS が利用される。

/etc/hosts(例)
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 のネットワークアドレス版。

/etc/hosts
ネットワーク名 IPアドレス(ネットワークアドレス)

名前解決(DNS)

/etc/resolv.conf

DNS サーバの設定ファイル。

/etc/resolv.conf
domain ドメイン
search ドメイン
nameserver IPアドレス
nameserver IPアドレス
options timeout:1 attempts:2

DHCP や NetworkManager が自動的にファイルを更新するため、手動で変更しても上書きされることがある。

domain

自身が所属するローカルのドメイン名を定義する。

ドメインを含まないホスト名を検索する場合に検索対象となる。

domainsearch はどちらか一方しか設定することはできず、両方が記述された場合、より下に記述された設定が使用される。

domain example.com

search

検索対象のドメインをリスト形式で記述する。

search を設定しておくと、ホスト名以降のドメイン(ドット . 以降の部分)が指定されなくても補完して名前解決できる。

例えば example.comexample.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 に依存しない仕組みになっている。

/etc/systemd/resolved.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 の設定ファイル。

{} で囲われた「ステートメント」と「オプション」から構成される。

/etc/named.conf の基本フォーマット
ステートメント {
  オプション;
};

ステートメントを構成する要素は以下の通り。

options

BIND 全体のデフォルト設定を記述するステートメント。

options ステートメント
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 アドレスの他、anynone が指定できる。
【例】allow-query { any; };
blackhole 問い合わせを拒否するサーバ(正確には問い合わせを完全無視する)。
【例】blackhole { 192.0.2.100; 198.51.100.0/24; };

zone

ゾーン ごとに個別の設定、定義をするステートメント。

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 typeslave の時に、プライマリサーバを指定する。
【例】masters { 192.168.120.2; };
allow-transfer ゾーン転送 を許可するサーバ。
セカンダリサーバだけに限定する設定が一般的。
【例】allow-transfer;
allow-query 問い合わせを許可するサーバ。
【例】allow-query { any; };
notify ゾーン更新時に、セカンダリサーバに即通知を行うか。
【例】notify yes;
forwarders typeforward の場合に転送先の DNS サーバを指定。
【例】forwarders { 8.8.8.8; 1.1.1.1; };

controls

BIND を外部から制御するための設定。

$ rndc からの操作を受け付ける際に利用される。

control ステートメント
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 ACL名 {
    アドレスマッチリスト;
};

アドレスマッチリスト には、アクセスを許可する IP アドレスやネットワークを並べて記述する。特定の IP アドレス以外に anylocalhostlocalnets(サーバ自身が所属するネットワーク)、none を指定することもできる。

また、ここで定義した ACL 名は options ステートメントの alow-queryallow-recursionalloq-transferblackhole で使用することができるようになる。

include

/etc/named.conf を複数のファイルに分割して管理するためのステートメント。

include ステートメント
include "ファイルパス";

ファイルパス には絶対パスを使うのが一般的。

/etc/named.conf 内で include "ファイルパス"; を記述すると、その場所に別ファイルの内容が展開されるイメージ。

key

認証キーの定義ステートメント。

key ステートメント
key "キー名" {
    algorithm アルゴリズム;
    secret "鍵情報";
};

algorithm では hmac-sha256hmac-sha512 が利用される。

secret には base64 でエンコードした鍵情報を記述する。鍵自体は $ rndc-condgen で作成する。

設定例($ rndc 用)

$ rndc コマンドを実行する環境側。

例:/etc/rndc.conf 側
key "rndc-key" {
    algorithm hmac-sha256;
    secret "abcdefgh1234567890==";
};

options {
    default-server 127.0.0.1;
    default-key "rndc-key";
};

DNS サーバ側。

例:/etc/named.conf 側(サーバ)
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 ステートメントで以下のように使う。

/etc/named.conf
zone "." IN {
    type hint;
    file "named.root";
};

ルート DNS サーバは頻繁に更新されるものではないが、IANA のサイトで公開されている(このページ では named.root に相当するファイルが公開されているので、ダウンロードしてそのまま使用することができる)。

Screenshot 2025-08-28 at 7.03.57.png

$ 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.confcontrols ステートメントで外部からの操作が許可されている必要がある。

namedデーモンの統計的な状態情報を表示する
$ rndc status
named デーモンを停止させる
$ rndc stop
ゾーンファイルを再読み込みする
$ rndc reload ドメイン
named.conf を再読み込みする
$ rndc reconfig
named デーモンを再起動させる
$ rndc restart
統計情報を /var/named/named.stats に出力する
$ rndc stat
キャッシュサーバのキャッシュを削除する
$ rndc flush

$ rndc-confgen

キーを生成する
$ rndc-confgen -a

キーは /etc/rndc.key に生成される。ファイル内には key ステートメント が記述されるため、include ステートメント で生成されたファイルパスを指定するだけで使える。。

named.conf と rndc.conf の両方の設定例を出力する
$ rndc-confgen

出力内容をこのままコピペして named.conf(DNS サーバ側の設定ファイル)と rndc.conf$ rndc 側の設定ファイル)に分けて書けば、$ rndc が使えるようになる。

$ host

DNS の問い合わせを行うためのツール。

ホスト名の IP アドレス解決や、逆引き(IP アドレスからホスト名)に利用される。

IP アドレスを問い合わせる(正引き)
$ host ホスト名
ホスト名を問い合わせる(逆引き)
$ host IPアドレス

$ dig

Domain Information Groper(grope=探る)

DNS サーバに問い合わせを行い情報を取得するツール。

$ host よりも詳細な情報が取得できる。

IP アドレスを問い合わせる
$ dig ホスト名
ホスト名を問い合わせる (逆引き)
$ dig -x IPアドレス

クエリタイプ を指定することで、レコードタイプ(リソースレコード)を指定することができる。

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 レコードが返ってきた。

実行例
google.com ではなく google.com. で問い合わせる
$ 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 による名前解決のテスト用コマンド。

IP アドレスを問い合わせる
$ nslookup ホスト名
ホスト名を問い合わせる (逆引き)
$ nslookup IPアドレス
DNS サーバを指定して IP アドレスを問い合わせる
$ nslookup ホスト名 DNSサーバのIPアドレス

引数を指定しない場合、対話モードになる。

対話モードを開始する
$ nslookup

名前解決(全般)

/etc/nsswitch.conf

Name Service Switch

名前解決の際の問い合わせ順序 を設定するファイル。

検索対象のカテゴリ(データベース)に対して、情報を取得する方法(サービス)を指定する。

サービスは複数指定することができ、左側に記述したサービスで情報が取得できなかった場合にのみ、右側に記述したサービスが順に利用されていく。

フォーマット
データベース名: サービス1 サービス2

例えば、

/etc/nsswitch.conf
hosts:          files dns

となっていた場合、名前解決の際に、/etc/hosts ファイルを最初に確認し、問い合わせたホスト名が /etc/hosts にない場合には DNS サーバに問い合わる、といった問い合わせ順序となる。

files となっている項目は、その項目に対するローカル環境の設定ファイルが最初の検索対象になる。

/etc/nsswitch.conf(例)
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)へ変換する問い合わせ時に利用される。

/etc/nsswitch.conf
passwd:         files systemd

となっていた場合、最初に files/etc/passwd)、次に systemdnss-systemd に対して問い合わせが行われる。

group

グループ情報に関する設定。

グループ名をグループ ID(UID)へ変換する際に利用される。

shadow

ユーザーのパスワード情報に関する設定。

ユーザーのパスワードが格納されたファイルを指定する。

files/etc/shadow のこと。

hosts

ホスト名解決に関する設定。

ホスト名($ hostname)を IP アドレスに変換する際に利用される。

/etc/nsswitch.conf
hosts:          files dns

となっていた場合、ホスト名を解決する際は /etc/hosts ファイル → DNS サーバの順に検索が行われる。

$ hostname

現在のホスト名を確認する
$ hostname
ホスト名を変更する
$ hostname 新ホスト名

$ hostname によるホスト名の変更は一時的なもので、再起動によって変更が元に戻ってしまう。恒久的に変更したい場合、$ hostnamectlを実行する必要がある。

ホストに設定された全ての IP アドレスを一覧表示する
$ hostname -I

$ hostnamectl

ホスト名を表示する
$ hostnamectl
$ hostnamectl status
恒久的にホスト名を変更する
$ hostnamectl set-hostname 新ホスト名

疎通確認・調査系コマンド

$ curl

Client URL

URL を指定してネットワークからデータを取得、送信するコマンド。

HTTP(S)、FTPSMTP など、さまざまなプロトコルをサポートしている。

URL のデータを取得
$ curl URL
取得データをローカル環境にファイルとして保存する(output)
$ curl -o ファイル名 URL
ネットワーク上のファイルをローカル環境(カレントディレクトリ)に保存する(output)
$ curl -O URL
指定した URL からのリダイレクトに従う
$ curl -L URL
HTTP ヘッダーだけ取得する
$ curl -I URL
POST リクエストでデータを送信する(data)
$ curl -d 送信データ URL
HTTPリクエストメソッド(GET、POST、PUT、DELETE など)を指定する
$ curl -X リクエストメソッド URL
HTTP ヘッダーを追加で指定する(header)
$ curl -H ヘッダー情報 URL

$ ping / $ ping6

指定された宛先に対して ICMP Echo Request(パケット) を送信し、そのホストから応答(Echo Reply)があるかどうかで接続を確認するためのツール。

指定した宛先に ICMP パケットを送信する
$ ping ホスト名
$ ping IPアドレス
送信回数を指定する(count)
$ ping -c 送信回数 ホスト名 # デフォルトは Ctrl + C で終了するまで延々と送り続ける
送信間隔を指定する(interval)
$ ping -i 秒数 ホスト名 # デフォルトは 1 秒

IPv6 では $ ping6 を使用する。利用方法は $ ping と同じ。

$ traceroute / $ traceroute6

指定された宛先までの経路を調査する
$ traiceroute ホスト名
$ traiceroute IPアドレス

IPv6 では $ traceroute6 を使用する。

デフォルトでは UDP でパケットを送信する。-I オプションで ICMP パケットに変更することができる。

返答は ICMP パケット(Time Exceeded)にて返ってくる。

※ 詳細な仕組みついては こちら

ICMP でパケットを送信する
$ traiceroute ホスト名 -I

$ tracepath / $ tracepath6

指定された宛先までの経路を調査する
$ tracepath ホスト名
$ tracepath IPアドレス

IPv6 では $ tracepath6 を使用する。

$ tcpdump

ネットワークインターフェース上を流れるパケットを取得し、人間が読める形式に解析して表示するパケットキャプチャツール。

指定したインターフェース上を流れるパケットを表示する(interface)
$ tcpdump -i インターフェース
ホスト名ではなく IP アドレスで表示する
$ tcpdump -ni インターフェース
ポート番号を指定する(フィルタをかけるイメージ)
$ tcpdump -i インターフェース port ポート番号
IP アドレスを指定する(フィルタをかけるイメージ)
$ tcpdump -i インターフェース host IPアドレス
キャプチャした情報をファイルに保存する(write)
$ tcpdump -i インターフェース -w ファイル
パケット数を指定する
$ tcpdump -i インターフェース -c パケット数
ファイルを読み込む(read)
$ tcpdump -r ファイル
ASCII 文字として表示する(バイナリデータの場合は文字化け)
$ tcpdump -i インターフェース -A
16進数(Hex)+ ASCII の両方を併記して表示する
$ 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アドレス ポート番号
80番ポート(HTTP)と443番ポート(HTTPS) の状態を確認する
$ 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
統計情報を表示する
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?