SNMPを外部接続する方法
SNMP(プロトコル)は、ルータやコンピュータ、端末など、ネットワークに接続された通信機器をネットワーク経由で監視・制御するためのプロトコルです。通常は、MRTG、Cacti などの監視するツールと併用して使います。
2026年11月時点の補足
記事は 2013年(Debian 6〜7)の手順です。Debian 13 の Net-SNMP は 5.9.4 で、Debian 13.7 の VPS(さくらのVPS・2GB プラン・3コア)で候補の版を確かめました(2026年11月5日)。
$ apt-cache policy snmpd | grep Candidate
Candidate: 5.9.4+dfsg-2+deb13u1
| 項目 | この記事(2013年) | 2026年11月時点 |
|---|---|---|
| snmpd の版 | 5.4 系 | 5.9.4 |
| 認証の方式 | SNMPv2c(コミュニティ名だけ) | SNMPv3(ユーザー名・パスワード・暗号化)を推奨 |
| 使うポート | 161番/UDP | 161番/UDP(トラップは 162番/UDP) |
| 再起動 | /etc/init.d/snmpd restart | systemctl restart snmpd |
| 方式 | パスワードの扱い | 外に開けてよいか |
|---|---|---|
| v1 / v2c | コミュニティ名が平文で流れる | 監視サーバーの IP だけに絞る |
| v3(authPriv) | SHA で認証・AES で暗号化 | 絞ったうえで使う |
⚠ 外部からのポーリングを許すときは、ファイアウォールで 161番/UDP を監視サーバーの IP だけに開けてください。コミュニティ名が「public」のままだと、誰でもサーバーの情報を読めます。
SNMPをインストール
// インストール
# apt-get install snmp snmpd
基本設定
// 編集
# vi /etc/snmp/snmpd.conf
// ~省略~
# sec.name source community
#com2sec paranoid default public
#com2sec readonly default public
com2sec readonly default snmpuser ← 修正:デフォルトのコミュニティー名を変更。
#com2sec readwrite default private
// ~省略~
-disk / 10000
+disk / ← 修正:コメントアウト解除(環境に合わせて変更して下さい。)
※コミュニティー名は、好きな名前に変更してください。
外部からのポーリングを許可する
外部からSNMPプロトコルにアクセスする場合は、127.0.0.1の部分を削除する必要があります。デフォルトは、インストールされたサーバーのみしかアクセス出来ません。
// 編集
# vi /etc/default/snmpd
// 内容
# This file controls the activity of snmpd and snmptrapd
# MIB directories. /usr/share/snmp/mibs is the default, but
# including it here avoids some strange problems.
export MIBDIRS=/usr/share/snmp/mibs
# snmpd control (yes means start daemon).
SNMPDRUN=yes
# snmpd options (use syslog, close stdin/out/err).
-SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
+SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid' ← 修正: 127.0.0.1を削除
# snmptrapd control (yes means start daemon). As of net-snmp version
# 5.0, master agentx support must be enabled in snmpd before snmptrapd
# can be run. See snmpd.conf(5) for how to do this.
TRAPDRUN=no
# snmptrapd options (use syslog).
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
# create symlink on Debian legacy location to official RFC path
SNMPDCOMPAT=yes
SNMPを再起動(設定反映)
// 再起動
# /etc/init.d/snmpd restart
動作チェック
外部のサーバーから SNMP を設定したIPアドレス宛に下記のコマンドを実行してください。IPアドレスの部分を変更して試してください。
// 実行
# snmpwalk -v 1 192.168.0.100 -c snmpuser .1.3.6.1.4.1.2021.11
// 出力内容
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 17 blocks/s
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 0 blocks/s
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 26 interrupts/s
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 76 switches/s
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 98
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 18578411
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 4702774
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1790470581
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 1099744
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 419659
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 383951940
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 107985422
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 218121223
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 799249221
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 957114
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 2820651
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 1739198
上記が出力されれば成功です。