Japanese notation
はじめに
記事について
OpenWrt初期設定・運用ガイドです
インストールから各種設定、チューニングなどをまとめています
初心者対応構成
- スクリプトでの自動設定
-
UCI (ttyd)、Webコンソール (LuCi)、ファイラー (SFTP)にて比較作業がおススメ
デバイスアクセス
PowerShellの開始
- パワーシェル起動:キー入力:
Win+x>a>はい - コンソールログイン (パワーシェル)
※192.168.1.1以外の場合、以下の形式で入力後にワンライナーを入力下さい
$ip="192.168.*.*"
- コンソールログイン (192.168.1.1用)
万能型ワンライナー
if(!$ip){$ip="192.168.1.1"}; ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o GlobalKnownHostsFile=NUL -o HostKeyAlgorithms=+ssh-rsa -tt root@$ip
最初にやる事
デバイス情報確認
ディストリビューション
cat /etc/openwrt_release
cat /etc/openwrt_version
cat /etc/os-release
uname -a
uname -r
システム情報
CPU
cat /proc/cpuinfo
MTD
cat /proc/mtd
MODULES
cat /proc/modules
devices
cat /proc/devices
free
free
meminfo
cat /proc/meminfo
iomem
cat /proc/iomem
ps
ps
ifconfig
ifconfig
dmesg
dmesg
プロセス数の上限
sysctl kern.maxproc kern.maxprocperuid
sysctl kernel.threads-max
ROOTパスワード
passwd
Changing password for root
New password:
passwd:入力モード
任意のパスワード
Retype password:
passwd:入力モード
再入力
passwd: password for root changed by root
exit
SSHアクセスインターフェース
※WAN側からアクセスする場合不要
# 設定値
SSH_INTERFACE='lan' # lan / wan / 空欄=全インターフェース
SSH_PORT='22' # SSHポート番号
# SSH設定
uci -q batch << EOF
set dropbear.@dropbear[0].Interface='${SSH_INTERFACE}'
set dropbear.@dropbear[0].Port='${SSH_PORT}'
commit dropbear
EOF
/etc/init.d/dropbear restart
設定
config(設定ファイル)は /etc/config/以下に格納
※以下設定は、新規インストール用
システム
# 設定値
HOSTNAME='openwrt' # ルーター名
DESCRIPTION=$(cat /etc/openwrt_version) # 説明
NOTES=$(date +%F\ %H:%M) # 備考
COUNTRY='JP' # 国コード
TIMEZONE='JST-9' # タイムゾーン
ZONENAME='Asia/Tokyo' # ゾーン名
NTP='pool.ntp.org' # NTPサーバー
# システム基本設定
uci -q batch << EOF
set system.@system[0].hostname='${HOSTNAME}'
set system.@system[0].description='${DESCRIPTION}'
set system.@system[0].notes='${NOTES}'
set system.@system[0].timezone='${TIMEZONE}'
set system.@system[0].zonename='${ZONENAME}'
set system.@system[0].conloglevel='6'
set system.@system[0].cronloglevel='9'
delete system.ntp.server
set system.ntp.enable_server='1'
set system.ntp.use_dhcp='0'
set system.ntp.interface='lan'
add_list system.ntp.server='0.$(echo ${COUNTRY} | tr 'A-Z' 'a-z').${NTP}'
add_list system.ntp.server='1.$(echo ${COUNTRY} | tr 'A-Z' 'a-z').${NTP}'
add_list system.ntp.server='0.${NTP}'
add_list system.ntp.server='1.${NTP}'
commit system
EOF
/etc/init.d/system reload
/etc/init.d/sysntpd restart
LED
利用可能LED確認
ls /sys/class/leds/
設定
# 設定値
LED_WHITE='white:power' # 白LED(デバイスにより異なる)
LED_RED='red:power' # 赤LED(デバイスにより異なる)
# LED設定
uci add system led
uci -q batch << EOF
set system.@led[-1].name='WHITE-OFF'
set system.@led[-1].sysfs='${LED_WHITE}'
set system.@led[-1].trigger='none'
set system.@led[-1].default='0'
EOF
uci add system led
uci -q batch << EOF
set system.@led[-1].name='POWER-RED'
set system.@led[-1].sysfs='${LED_RED}'
set system.@led[-1].trigger='default-on'
EOF
uci commit system
/etc/init.d/led restart
オフロード
フローオフロード
# 設定値
OFFLOAD='software' # software / hardware / disabled
# オフロード設定
case "${OFFLOAD}" in
software)
uci -q batch << EOF
set firewall.@defaults[0].flow_offloading='1'
delete firewall.@defaults[0].flow_offloading_hw
commit firewall
EOF
;;
hardware)
# ※ハードウェアNATサポート必要(mt7621, MT7986A/B等)
uci -q batch << EOF
set firewall.@defaults[0].flow_offloading='1'
set firewall.@defaults[0].flow_offloading_hw='1'
commit firewall
EOF
;;
esac
/etc/init.d/firewall restart
パケットステアリング
# 設定値
PACKET_STEERING='1' # 1=有効 / 0=無効
# パケットステアリング設定
uci set network.globals.packet_steering="${PACKET_STEERING}"
uci commit network
/etc/init.d/network restart
カスタムDNS
# 設定値
DNS4_PRIMARY='1.1.1.1' # IPv4 プライマリDNS
DNS4_SECONDARY='8.8.8.8' # IPv4 セカンダリDNS
DNS6_PRIMARY='2606:4700:4700::1111' # IPv6 プライマリDNS
DNS6_SECONDARY='2001:4860:4860::8888' # IPv6 セカンダリDNS
# カスタムDNS設定
uci -q batch << EOF
delete dhcp.lan.dhcp_option
delete dhcp.lan.dns
add_list dhcp.lan.dhcp_option='6,${DNS4_PRIMARY},${DNS4_SECONDARY}'
add_list dhcp.lan.dns='${DNS6_PRIMARY}'
add_list dhcp.lan.dns='${DNS6_SECONDARY}'
commit dhcp
EOF
/etc/init.d/dnsmasq restart
/etc/init.d/odhcpd restart
確認
Wi-Fi
※W53、W56はDFSにて起動遅延60秒
設定
# 設定値
SSID='OpenWrt' # SSID
PASSWORD='password1234' # パスワード(8文字以上)
COUNTRY='JP' # 国コード
# WiFi設定
for radio in $(uci show wireless | grep "wireless\.radio[0-9]*=" | cut -d. -f2 | cut -d= -f1); do
band=$(uci -q get wireless.${radio}.band)
iface="default_${radio}"
# band別の暗号化方式(6GHzはsae必須)
case "${band}" in
6g) encryption='sae' ;;
*) encryption='sae-mixed' ;;
esac
uci -q batch << EOF
set wireless.${radio}.disabled='0'
set wireless.${radio}.country='${COUNTRY}'
set wireless.${iface}.ssid='${SSID}-${band}'
set wireless.${iface}.key='${PASSWORD}'
set wireless.${iface}.encryption='${encryption}'
EOF
done
uci commit wireless
wifi reload
確認
- Microsoft Store
他設定
CRON(スケジュール)
参考
# 再起動 06:00
echo "00 06 * * * sleep 70 && touch /etc/banner && reboot" >> /etc/crontabs/root
# WiFi A OFF 00:00
echo "00 00 * * * uci set wireless.default_radio0.disabled=1; uci commit; wifi" >> /etc/crontabs/root
# WiFi A ON 08:00
echo "00 08 * * * uci set wireless.default_radio0.disabled=0; uci commit; wifi" >> /etc/crontabs/root
# LED 夜間 OFF 00:00 ※再起動で設定値復旧
echo "00 00 * * * echo "none" > /sys/class/leds/white:power/trigger" >> /etc/crontabs/root
/etc/init.d/cron restart
スケジュール確認
crontab -l
フラッシュ&インストールシステム
他デバイス設定
初期化
ファクトリーリセット(初期化)
# 要注意
firstboot && reboot now
This will erase all settings and remove any installed packages. Are you sure? [N/y]
y
デバイスリセットボタン
デバイスのリセットボタンを5秒押し続ける

