如何修改LEDE和X86_64位OpenWrt的默认80管理端口-CarlZeng

  1. The LEDE Project ssh修改80管理端口
  2. 排查及优化Openwrt内存占用,故障排查与资源维护

背景

我们网络环境的特殊性,尤其是跨越运营商时;80端口是很敏感而被封锁着的。那么如何把OpenWrt(路由器系统)的默认端口从默认的80端口改到其他的端口呢?SSH局域网内配置修改步骤如下。

相关内容

如果您对相关的 linux 感兴趣,以下内容可能帮到您:

下一步TODO:我讲尝试API获取站内搜索的结果页面(仅内容+链接)返回HTML

查看tcp端口占用情况

Linux通用的命令:netstat -tln

这样查询以后就知道机器目前到底开放了那些tcp端口

1
2
3
4
5
6
7
8
9
10
11
12
root@K2P:/# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 ::ffff:192.168.2.1:7681 :::* LISTEN
tcp 0 0 :::5000 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::53 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::23 :::* LISTEN

关于LEDE OpenWrt

The LEDE Project (“Linux Embedded Development Environment”) is a Linux operating system based on OpenWrt. https://lede.readthedocs.io/en/latest/#

相当于一台硬件配置简陋的Linux服务器,用于测试小ipk软件包还是很好用的。

步骤

  1. 使用SSH连接到OpenWrt

  2. Terminal 运行 ssh root@192.168.6.1 如果提示错误:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man\-in\-the-middle attack)! It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is SHA256:62NIyqmMPzrJKil2jKX74MqnU/6xASo0SWfArXejsPQ.
    Please contact your system administrator.
    Add correct host key in /Users/\*\*\*/.ssh/known\_hosts to get rid of this message.
    Offending RSA key in /Users/\*\*\*/.ssh/known\_hosts:12 Host key for 192.168.6.1 has changed and you have requested strict checking.
    Host key verification failed.
    就需要我们把/Users/\*\*\*/.ssh 目录下的“known\_hosts”删除,重试一下即可。 2. 输入root用户的密码,登录到状态,类似信息:
    BusyBox v1.25.1 () built-in shell (ash)
         \_\_\_\_\_\_\_\_\_ /        /\\      \_    \_\_\_ \_\_\_  \_\_\_ /  LE    /  \\    | |  | \_\_|   \\| \_\_|
      /    DE  /    \\   | |\_\_| \_|| |) | \_|
     /\_\_\_\_\_\_\_\_/  LE  \\  |\_\_\_\_|\_\_\_|\_\_\_/|\_\_\_|                      lede-project.org
     \\        \\   DE / \\    LE  \\ /  ----------------------------------------------------------- \\  DE    \\ /    Reboot (17.01\-SNAPSHOT, r4046-beaa2ecc10)
        \\\_\_\_\_\_\_\_\_\\/    -----------------------------------------------------------
    
  3. 登录后,修改配置文件

    1. cd /etc/config
    2. cat uhttpd【可选步骤, 查看现有文件内容】
    3. vi uhttpd
    4. (i 命令)修改成下面这样从80,改为8080(举个例子)
      config uhttpd ‘main’ list listen_http ‘0.0.0.0:8080’ list listen_http ‘[::]:8080’ list listen_https ‘0.0.0.0:443’ list listen_https ‘[::]:443’ …..
    5. 修改完成后保存(:wq)
    6. 重启uhttpd(或重启路由器)
1
/etc/init.d/uhttpd restart

关于X86_64位构架的OpenWrt

排查及优化Openwrt内存占用

尴尬地发现Openwrt在虚拟机中的内存占用率为:85%
黄条提醒很醒目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
top -m

Mem: 430112K used, 65328K free, 33268K shrd, 6972K buff, 187200K cached
CPU: 0% usr 1% sys 0% nic 97% idle 0% io 0% irq 0% sirq
Load average: 0.17 0.18 0.09 1/236 19160
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
6376 1 root T 3192 1% 0% {wrtbwmon} /bin/sh /usr/sbin/wrtbwmon -46 -f /tmp/usage.db -p /tmp/usage.htm -u /et
11165 1 root SN 43924 9% 0% /usr/sbin/netdata -D -c /etc/netdata/netdata.conf
4899 4880 root S 1180 0% 0% /usr/sbin/umdns
54 2 root IW 0 0% 0% [kworker/2:1-eve]
5074 1 root S 708m 146% 0% speedtest-web --listen_port 8989
5492 1 root S 702m 145% 0% /usr/sbin/quickstart serve
30401 1 root S 28028 6% 0% /usr/sbin/smbd -F
30469 30401 root S 26336 5% 0% {smbd-cleanupd} /usr/sbin/smbd -F
30468 30401 root S 26312 5% 0% {smbd-notifyd} /usr/sbin/smbd -F
30402 1 root S 17500 4% 0% /usr/sbin/nmbd -F
11299 11165 root SN 16780 3% 0% /usr/sbin/netdata --special-spawn-server
29142 4459 root S 8912 2% 0% nginx: worker process
优化:在Openwrt的SSH中,请使用htop命令来监测系统性能及资源使用情况,它更加清晰,如下:

htop命令

杀死进程:speedtest-web
kill -9 @@@
内存使用率 从85% 降到 77.76%;

  • 发现:/usr/sbin/wrtbwmon 是流量监控的进程
    在OP的UI界面,切换到 状态 》 实时监控; 关闭了实时监控的按钮;Pause
    内存使用率 从77% 降到 50%;

使用Netdata设置实时性能监控
这个进程杀死后也会自动在启动,而已有好多个进程ID,没有彻底解决这个性能占有问题

尝试着用htop, 选中然后F9在Kill SigKill回车Kill,瞬间内容就降下来,CPU飙上去;然后很快又会恢复内存最高占用率(CPU随之回落)

OP的这个LUCI背后用这么强大的图形化和数据库统计流量这些,实在好浪费资源(平时几乎不会去查看)

修改OpenWrt的默认80管理端口

自编译的J4125的OpenWrt的UI,不是使用上面那个K2P版本的LEDE OpenWrt的httpd来管理web页面UI。

这时候OpenWrt是NGINX来管理UI的,配置文件在/etc/config/nginx
这个文件包含NGINX配置文档内容。应用保存后自动重启生效。

如图:修改80端口为8080即可
修改80端口为8080