Rat's

一款面向个人,团队,小型组织的免费开源网盘程序:kiftd搭建教程
说明:之前博主介绍过很多网盘程序,比如:Nextcloud、FileRun、Cloudreve、Seafile、F...
扫描右侧二维码阅读全文
09
2018/12

一款面向个人,团队,小型组织的免费开源网盘程序:kiftd搭建教程

说明:之前博主介绍过很多网盘程序,比如:NextcloudFileRunCloudreveSeafileFilebrowser等,都挺强大的,不过博主最近一直想要一款简洁又强大的网盘程序,然后就发现了Kiftd网盘,一款全方位面向个人,团队,小型组织的文件传输系统的免费开源网盘,无上传限制,视频音乐在线播放,图片浏览等等,功能非常的强大。无论是WindowsLinux还是Unix(包括Mac OS X),均可运行使用。这里就发下搭建教程。

截图

请输入图片描述
请输入图片描述

功能特点

  • 无上传限制:1MB的文档和超过4GB的高清电影资源?均能够随意上传和下载。
  • 主流商业网盘特有的高级功能甚至需要收费的功能——文件夹访问权限控制、MP4视频在线影院、MP3音乐在线欣赏、图片文件在线预览、PDF文档在线阅读,kiftd均一一具备,每一份kiftd均是“完全版”。
  • 操作系统全兼容:无论是WindowsLinux还是Unix(包括Mac OS X),均可运行使用。
  • 同时满足日常或专业需求:kiftd同时具备了图形界面模式和纯命令模式的双操作模式,无论您是喜欢点击鼠标的电脑小白还是需要使用命令在远程Linux上部署的运维人员,均能完美操作。
  • 无任何使用成本:kiftd完全开源免费,因此唯一的使用成本就是需要安装它。至于之后您想将其用于什么领域,哪怕是商业领域——均无任何限制。
  • 无内置代码的隐患:kiftd完全开源,您可以随意下载其源代码,并用它自己编译一份kiftd;同时,它删除即走,绝不和你撒娇卖萌。保护用户硬件环境,从开源做起。

安装

Github地址:https://github.com/KOHGYLW/kiftd

由于Linux系统运行过程对小白很不友好,所以这里只说Linux系统,WindowsMac可以看说明,很简单。

1、安装java
首先使用命令java -version查看服务器上有没有java环境,如果没有就需要安装了。

先去下载jdk文件→下载地址,由于这个不能直接复制超链接下载,必须先Accept条款后,才能下载,有点麻烦,所以这里博主就直接将最新版的jdk文件包放服务器供使用了。

#64位系统下载jdk文件
wget -O jdk.tar.gz https://www.moerats.com/usr/down/JDK/jdk-8u192-linux-x64.tar.gz
#32位系统下载jdk文件
wget -O jdk.tar.gz https://www.moerats.com/usr/down/JDK/jdk-8u192-linux-i586.tar.gz

#解压并删除压缩文件
tar -zxvf jdk.tar.gz && rm -rf jdk.tar.gz

编辑/etc/profile文件:

nano /etc/profile

在后面添加以下代码:

JAVA_HOME=/root/jdk1.8.0_192
export JRE_HOME=/root/jdk1.8.0_192/jre 
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后使用Ctrl+xy保存退出。

使配置生效:

source /etc/profile

查看java版本:

#有以下输出就安装成功
root@Rats:~# java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)

2、安装git

#CentOS 7系统
yum install git -y

#Debian、Ubuntu系统
apt install git -y

3、安装kiftd

git clone https://github.com/KOHGYLW/kiftd.git
cd kiftd
#运行程序,目前最新为kiftd-1.0.18
java -jar kiftd-*-RELEASE.jar -start

#后台运行
nohup java -jar kiftd-*-RELEASE.jar -start >> /root/output.log 2>&1 &

然后访问ip:8080,默认管理员账户和密码为admin000000

如果界面打不开,可能还需要开启8080端口,开启如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

最后如果你要修改网盘界面的一些信息的话,直接编辑源码文件夹里的webContext/home.html即可;修改端口密码的话,可以看看conf文件夹。

域名访问

可能有些人不习惯使用IP访问网盘,这里可以使用NginxApacheCaddy反代端口,这里只说宝塔NginxCaddy。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2种的Caddy反代,配置很快。

1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8080,再启用反向代理即可。至于启用SSL就不说了,直接在站点配置就可以启用。

2、Caddy反代
安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "xx.com {
 gzip
 proxy / 127.0.0.1:8080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "xx.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

3、Nginx配置
如果你使用其它的,这里就大概发个Nginx反代配置,直接添加到配置文件即可。

#在配置文件里添加
location / {
     proxy_pass http://127.0.0.1:8080;
     proxy_redirect off;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 07 月 19 日 05 : 28 PM

发表评论 取消回复

59 条评论

  1. ben

    nohup java -jar kiftd-1.0.9-RELEASE.jar -start >> /root/output.log 2>&1 &
    问下这句start后的“>>”为啥不是一个“>”符号呢?我看nohub都是用的“>”哎。

    1. Rat's
      @ben

      这个是写入前先清空里面的日志,>>这个不清空,在后面接着写入日志

      1. ben
        @Rat's

        这样啊,谢谢博主

  2. Lyric

    提示:出现意外错误,文件:[480P_600K_203338431.mp4]上传失败,上传被中断。 上传100m左右大小的文件就会报错。是用宝塔反代以后域名访问的。

    1. Rat's
      @Lyric

      使用ip访问上传也是这种情况?如果是的话,可以看下配置文件

      1. Lyric
        @Rat's

        刚用手机试了下,用ip+端口可以上传成功,但是要开dail才能访问,同一台vps搭建的v2

        1. Rat's
          @Lyric

          用的nginx吗?我记得Nginx好像也有一个上传限制参数,client_max_body_size,你修改下大小,其余的我就不是很清楚了,对这个没怎么深入研究

          1. Lyric
            @Rat's

            好,等下我试试吧,麻烦博主了

  3. 咕咕咕

    请问大佬这个怎么改端口啊?8080有其他东西了。或者怎么改nginx端口配置......不知道该改哪个配置文件。还有想问一下大佬。不同的二级域名能解析到相同的ip但端口不一样的地址上吗?

    1. Rat's
      @咕咕咕

      修改端口文章已经说了,你自己看下,域名只能解析到固定ip,如果要指定端口的话,可以用反代

      1. 咕咕咕
        @Rat's

        那麻烦再问一个问题,这个网盘能挂载onedrive吗?......vps内存小所以一直想弄一个云盘挂载网盘....

        1. Rat's
          @咕咕咕

          不行。

  4. Tony

    关了xshell就访问不了怎么办

    1. Rat's
      @Tony

      需要后台运行,或者看下面的评论,使用systemctl守护进程。

  5. Tony

    博主请问无UI的Windows怎么安装kiftd?
    我用的系统是:Windows Server Version 1709 数据中心版 64位中文版(不含UI)
    只有管理员的cmd

    1. Rat's
      @Tony

      这个我还没尝试过,所以暂时不清楚

  6. Tony

    [img src='https://iamsjy.oss-cn-shanghai.aliyuncs.com/%E6%8D%95%E8%8E%B7.PNG?Expires=1545547935&OSSAccessKeyId=TMP.AQEh95bWskzhLe04aAfAzO1xF1bcrPtsq3qP9dKpKdLSp87UUN5B76jPoIquAAAwLAIUSpbT5Msp28jhEoI1aPJt8-gVon8CFEEqsoC3zWptPu7LyQcUVyRC8DgV&Signature=L7XmgLS3BdpTHavlcvNhddyRbFI%3D' alt='图片']

  7. Tony

    文件放阿里云OSS好,下载速度最快16MB/s

  8. temperature

    是不是在服务器用不了图形设置,只能修改配置文件鸭

    1. Rat's
      @temperature

      图形我xshell都是乱码,干脆直接一条命令开启了算了,不过FinalShell客户端可以显示,你可以试试https://www.moerats.com/archives/691/。

  9. promind

    server {
    listen 80;
    server_name xxx.xxx;

    enforce https

    return 301 https://$server_name$request_uri;
    }

    server {
    listen 443 ssl http2;
    server_name xxx.xxx;

    ssl_certificate /etc/nginx/cert/chain.pem;
    ssl_certificate_key /etc/nginx/cert/private.key;

    location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For
    $proxy_add_x_forwarded_for;
    }
    }

    请教下,通过8080端口访问成功,但是配置nginx反代用上面的vhost配置,会跳转到127.0.0.1:8080,要怎么修改呢

    1. Rat's
      @promind

      给个大概配置你参考下吧:
      location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://127.0.0.1:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_next_upstream error timeout http_502 http_503 http_504;
      }

  10. Meteora

    请教下楼主,centos7 装完以后,我想利用本身自身任务 早上六点开启此网盘{因为学校晚上断电}
    写了这么一句,测试不能启动,能否给点指导00 06 * root /home/wyy/kiftd/nohup java -jar kiftd-1.0.9-RELEASE.jar -start >> /root/output.log 2>&1 &顺便问问可以转载么。

    1. Rat's
      @Meteora

      直接这样设置定时任务看看(不知道为啥3个*变成了1个,自己补一下):
      0 6 * java -jar /root/kiftd/kiftd-1.0.9-RELEASE.jar -start
      转载的话,可以,留个出处就行了。

      1. Meteora
        @Rat's

        还是不行。用screen开机执行命令也不行- -觉得自己啥都不懂了23333

        1. Rat's
          @Meteora

          使用Systemctl看看。先新建一个管理文件:
          cat > /etc/systemd/system/kiftd.service <<EOF
          [Unit]
          Description=kiftd
          After=network.target
          Wants=network.target
          [Service]
          Type=simple
          PIDFile=/var/run/kiftd.pid
          ExecStartPre=cd /root/kiftd
          ExecStart=/bin/bash -c "cd /root/kiftd && /root/jdk1.8.0_192/bin/java -jar kiftd-1.0.9-RELEASE.jar -start"
          RestartPreventExitStatus=23
          Restart=always
          User=root
          [Install]
          WantedBy=multi-user.target
          EOF
          然后网盘的管理命令为:
          启动程序:systemctl start kiftd
          查看状态:systemctl status kiftd
          开机自启:systemctl enable kiftd
          然后再定时任务,写入:
          时间+systemctl start kiftd

          1. Meteora
            @Rat's

            谢谢楼主,根据这个修改了路径成功了