LinksysWrt1900acs刷官方镜像并开启FTP
博客专区 > a_xianyu 的博客 > 博客详情
LinksysWrt1900acs刷官方镜像并开启FTP
a_xianyu 发表于6个月前
LinksysWrt1900acs刷官方镜像并开启FTP
  • 发表于 6个月前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

系统:https://downloads.openwrt.org/chaos_calmer/15.05.1/mvebu/generic/openwrt-15.05.1-mvebu-armada-385-linksys-shelby-squashfs-factory.img

需要的工具:WinSCP, putty(或其它ssh工具)

安装完系统后
1. ssh连接路由器后直接输入命令

最开始刷系统后会登陆192.168.1.1时会出现一个root用户名和其对应的密码,
就是用于ssh连接时的用户名和密码。如果更改过密码,则使用更改过的。
    opkg update
    opkg install kmod-usb-core
    opkg install kmod-usb2                #安装usb2.0 
    opkg install kmod-usb3                #安装usb3.0 
    opkg install kmod-usb-ohci            #安装usb ohci控制器驱动
    opkg install kmod-usb-storage         #安装usb存储设备驱动
    opkg install kmod-fs-vfat             #挂载FAT
    opkg install ntfs-3g                  #挂载NTFS
    opkg install mount-utils              #挂载卸载工具
    opkg install block-mount

    再更新驱动

opkg update
opkg install git-http
cd /tmp
git clone --depth 1 https://github.com/NemoAlex/mwlwifi-bin.git
cd mwlwifi-bin/15.05.1
opkg install kmod-mwlwifi_3.18.23\+10.3.0.17-20160531-1_mvebu.ipk
reboot

2. 用WinSCP连接路由器(还是上面的路由器和密码),文件协议选择SCP,
打开/etc/hotplug.d/block/10-mount文件(如果不存在请新建)
修改为如下内容

#!/bin/sh
 
# Copyright (C) 2009 OpenWrt.org  (C) 2010 OpenWrt.org.cn
 
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
 
    device=`basename $DEVPATH`
    case "$ACTION" in
        add)
                mkdir -p /mnt/$device
                # vfat & ntfs-3g check
                if  [ `which fdisk` ]; then
                        isntfs=`fdisk -l | grep $device | grep NTFS`
                        isvfat=`fdisk -l | grep $device | grep FAT`
                        isfuse=`lsmod | grep fuse`
                        isntfs3g=`which ntfs-3g`
                else
                        isntfs=""
                        isvfat=""
                fi 
 
                # mount with ntfs-3g if possible, else with default mount
                if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
                        ntfs-3g -o nls=utf8 /dev/$device /mnt/$device
                elif [ "$isvfat" ]; then
                        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/$device
                else
                        mount /dev/$device /mnt/$device
                fi
  if [ -f /dev/${device}/swapfile ]; then
   mkswap /dev/${device}/swapfile
   swapon /dev/${device}/swapfile
  fi
                ;;
        remove)
  if [ -f /dev/${device}/swapfile ]; then
   swapoff /dev/${device}/swapfile
  fi
                umount /dev/$device
                ;;
    esac
 
fi

保存后,重启路由器。(直接在System下选择Reboot, 或者再ssh连接下输入reboot都可以)

    稍加修改,就可以实现自动挂载。下面这段代码就可以自动挂载ntfs类型的u盘,挂载后的地址为/mnt/sda4.

#!/bin/sh
 
# Copyright (C) 2009 OpenWrt.org  (C) 2010 OpenWrt.org.cn
 
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
 
    device=`basename $DEVPATH`
    case "$ACTION" in
        add)
                mkdir -p /mnt/sda4
                # vfat & ntfs-3g check
                if  [ `which fdisk` ]; then
                        isntfs=`fdisk -l | grep $device | grep NTFS`
                        isvfat=`fdisk -l | grep $device | grep FAT`
                        isfuse=`lsmod | grep fuse`
                        isntfs3g=`which ntfs-3g`
                else
                        isntfs=""
                        isvfat=""
                fi 
 
                # mount with ntfs-3g if possible, else with default mount
                if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
                        ntfs-3g -o nls=utf8 /dev/$device /mnt/sda4
                elif [ "$isvfat" ]; then
                        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/sda4
                else
                        mount /dev/$device /mnt/sda4
                fi
  if [ -f /dev/${device}/swapfile ]; then
   mkswap /dev/${device}/swapfile
   swapon /dev/${device}/swapfile
  fi
                ;;
        remove)
  if [ -f /dev/${device}/swapfile ]; then
   swapoff /dev/${device}/swapfile
  fi
                umount /dev/$device
                ;;
    esac
 
fi

3. 重启后,再次登陆后点击Mount Points
    此时,应该出现一个网页,类似下图

              

4. 查看设备地址。

    插上U盘之后,此时U盘并不能挂载,如果挂载U盘,需要先找到设备地址,就是使用blkid命令。(如果中间显示某个包无法找到,可以使用opkg update, 之后再次尝试)

        opkg install fdisk

        opkg install e2fsprogs

        opkg install blkid

    之后直接输入blkid,就可以看到设备地址,如下图红框中的/dev/sda4,就是目前插入的U盘的设备地址。

              

5. 挂载U盘。

    如果插入的U盘的文件系统类型为ntfs, 则在ssh连接下使用

        ntfs-3g /dev/sda4 /mnt/sda4

进行挂载

    如果是fat32, 则在ssh连接下使用如下命令安装软件

opkg update
opkg install kmod-nls-base
opkg install kmod-nls-cp437
opkg install kmod-nls-iso8859-1

,再使用blkid查看设备地址,使用 

mount -t vfat /dev/sda4 /mnt/sda4

进行挂载。其它类型的文件系统,请自行查找挂载命令。

    此时刷新System->Mount Points页面,会发现下面多了一行,

              

则说明U盘挂载成功。可以使用WinSCP连接进入/mnt/sda4/目录查看U盘中的相关内容, 如下所示,图中中文文件名出现了乱码,并没有想到什么办法解决,求大神赐教。

            

目前只能实现U盘的手动挂载,网上的方法之前也试过,基本没有效果。如果有谁知道怎么自动挂载,求告知。

6. 安装ftp

    推荐使用vsftpd

    opkg update

    opkg install vsftpd

    修改/etc/vsftpd.conf为如下(推荐使用匿名用户),其中anon_root和local_root为设备的挂载地址。并且不能有空格,务必仔细检查。注意:下面的配置允许登陆的用户上传,下载和删除文件,如果有特定需要,请自行修改

chown_uploads=YES
chown_username=root
ftp_username=nobody
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/mnt/sda4
anon_max_rate=512000
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
local_root=/mnt/sda4

    再就是启动ftp了,

    /etc/init.d/vsftpd restart

    之后就可以使用ftp客户端或其它方式进行访问了,用户名和密码还是路由器的用户名和密码,这时u盘中的中文文件名可以正常显示。

ps: 如果只是需在局域网中分享文件,推荐使用samba, 设置更为简单。

参考的文章:

1. http://jingyan.baidu.com/article/5225f26b6b273fe6fa090829.html

2. http://www.wifidog.pro/2015/08/13/openwrt-ftp.html

3. http://www.cnblogs.com/double-win/p/3848797.html

4. http://www.tuicool.com/articles/zeqiqev

如果需要允许特定的用户使用ftp: http://blog.csdn.net/luotong86/article/details/53039617

标签: OpenWrt ftp
共有 人打赏支持
粉丝 0
博文 34
码字总数 18435
×
a_xianyu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: