本帖最后由 lgs2007m 于 2022-11-30 17:22 编辑
使用Lean大佬源码编译的OpenWrt已用上IPv6,然后想内网也能通过IPv6访问OpenWrt的SSH(dropbear)和TTYD终端。在论坛搜索了好一阵终于设置可以IPv6访问了,但是不知道是否是最佳方法,还请知道的大佬指导。
—————————【IPv6访问SSH(dropbear)】——————
dropbear默认配置:
- # /etc/config/dropbear
- config dropbear
- option PasswordAuth 'on'
- option Port '22'
- option Interface 'lan'
复制代码
保持OpenWrt的dropbear默认配置,使用LAN口IPv6地址无法SSH登录,使用netstat命令查看监听中的链接,发现只有IPv4的22端口监听,没有IPv6的22端口监听:
- root@OpenWrt:~# netstat -ltnp | grep dropbear #-l仅列出有在监听,-t仅显示tcp,-n拒绝显示别名,-p显示程序名,grep抓取包含dropbear的行
- tcp 0 0 192.168.1.1:22 0.0.0.0:* LISTEN 2612/dropbear
复制代码
要IPv6监听需要开启dropbear的网关端口,在web页面打开系统->管理权->SSH访问中的Dropbear实例,勾选网关端口(允许远程主机连接到本地 SSH 转发端口),保存&应用。
或者是SSH登录后使用uci命令修改/etc/config/dropbear文件并重启dropbear:
- uci set dropbear.@dropbear[0].GatewayPorts='on' # 设置网关端口(允许远程主机连接到本地 SSH 转发端口)
- uci commit dropbear # 保存设置
- /etc/init.d/dropbear restart # 重启dropbear
复制代码
再次使用netstat查看监听中的链接,发现多了一个LAN口IPv6的22端口监听,LAN口IPv6地址可以SSH登录了:
- root@OpenWrt:~# netstat -ltnp | grep dropbear
- tcp 0 0 192.168.1.1:22 0.0.0.0:* LISTEN 7895/dropbear
- tcp 0 0 2400:aaaa:bbbb:cccc::1:22 :::* LISTEN 7895/dropbear # LAN口IPv6的22端口监听
复制代码
——————【IPv6访问TTYD终端】——————
ttyd默认配置:
- # /etc/config/ttyd
- config ttyd
- option interface '@lan' # 接口绑定
- option command '/bin/login'
复制代码
保持ttyd默认配置,使用LAN口IPv6地址登录路由打开TTYD终端显示拒绝访问,使用netstat命令查看监听中的链接,发现只有IPv4的7681端口监听,没有IPv6的7681端口监听:
- root@OpenWrt:~# netstat -ltnp | grep ttyd
- tcp 0 0 192.168.1.1:7681 0.0.0.0:* LISTEN 13776/ttyd
复制代码
直接开启IPv6,使用uci修改/etc/config/ttyd:
- uci set ttyd.@ttyd[0].ipv6='on' # 增加ipv6选项设置为on
- uci commit ttyd # 保存设置
- /etc/init.d/ttyd restart # 重启ttyd
复制代码
即
- config ttyd
- option interface '@lan'
- option ipv6 'on' # 开启IPv6
- option command '/bin/login'
复制代码
使用netstat命令查看监听中的链接,发现只有IPv4的7681端口监听变成了IPv4映像地址的7681端口监听,但是LAN口IPv6依然不能访问TTYD:
- root@OpenWrt:~# netstat -ltnp | grep ttyd
- tcp 0 0 ::ffff:192.168.11.1:7681 :::* LISTEN 15622/ttyd
复制代码
【注】::ffff:192.168.1.1是192.168.1.1的IPv4映像地址,用于将IPv4节点表示为IPv6节点,允许IPv6应用程序直接与IPv4应用程序通信。
尝试删除接口绑定:
- uci delete ttyd.@ttyd[0].interface # 删除接口绑定选项
- uci commit ttyd # 保存设置
- /etc/init.d/ttyd restart # 重启ttyd
复制代码
使用netstat命令查看监听中的链接,发现变为了一个未指定地址::的7681端口监听,LAN口IPv6可以访问TTYD了,同时IPv4也可以访问:
- root@OpenWrt:~# netstat -ltnp | grep ttyd
- tcp 0 0 :::7681 :::* LISTEN 19274/ttyd
复制代码
附带一个TTYD终端指定root登录(免密码)设置:
修改/etc/config/ttyd文件,将command选项中的/bin/login修改为/bin/login -f root,保存文件,重启TTYD。
- uci set ttyd.@ttyd[0].command='/bin/login -f root' # 加-f root自动以root登录
- uci commit ttyd # 保存设置
- /etc/init.d/ttyd restart # 重启ttyd
复制代码
- # /etc/config/ttyd
- config ttyd
- # option interface '@lan' # 注释掉这行,不绑定端口,才可以IPv6访问
- option ipv6 'on'
- option command '/bin/login -f root' # 加-f root自动以root登录
复制代码
使用ps命令可以查看ttyd进程的选项参数:
- root@OpenWrt:~# ps | grep ttyd
- 19274 root 5148 S /usr/bin/ttyd -6 /bin/login -f root
复制代码
可以看到ttyd后-6选项是启用IPv6,没有绑定端口所以没有-i <interface>选项,-f root是指定root登录(免密码)
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|