Shell Bin

想要成为最强萌新

@Shell2年前

08/5
16:45
计算机

说正事,Debian下多用户Shadowsocks服务器的搭建

这件事得扯到前天晚上一个初中同学和我提起他想翻墙的事情,因为各种原因,我最后决定买个ConoHa的VPS帮他架设服务器,同时我和他建立租赁关系,我负责服务器的架设与维护,他只要掏钱拿来用就行。这也是我从树莓派之后第一次面对桌面版的Linux系统,有了之前的经验积累,做这些事情不能说得心应手也已经没有太多的困难了,就像用一般的电脑一样,不会有之前陌生的感觉了。

不免俗套,还是要推广下ConoHa的服务器的,900日元一个月,截止当前汇率折合人民币50多点,似乎不太实惠?不,实际上爽死了,因为它速度快而且免收流量费,这就很厉害了,免流量啊卧槽,简直就是为代理量身定制….(更重要的是,ConoHa应该是最萌的主机了)


我不说你们都已经知道我要做什么了,我要贴推广链接,到时候咱们都有钱分,啧啧。
戳这里加入ConaHa

 

做事之前当然需要先输入这个命令执行更新啦
aptget update

然后再安装一下依赖包
apt-get install -y –force-yes build-essential autoconf libtool libssl-dev curl
apt-get install python-pip git python-m2crypto
pip install cymysql

现在来装SS吧,先cd到一个好找的地方
cd /home

然后下载SS的manyuser,在此感激这些开源软件的开发者
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

还有一件事,你还需要一个进程守护软件screen,screen用起来要简单一些
apt-get install screen

要保证你的服务器有安装好PHP+mysql的环境。PHP版本要5.3以上的, MYSQL要最好要5.5以上的,同时为了管理数据库方便,再去安装一个phpmyadmin,这些东西的安装方法可以轻易从百度找到,只需要寻找debian XXXX安装就可以了

接下来开始后端的配置
cd /home/shadowsocks/shadowsocks
nano Config.py

MYSQL_HOST = ’127.0.0.1’ #前端数据库地址
MYSQL_PORT = 3306 #前端数据库端口
MYSQL_USER = ’ss’ #前端数据库用户名
MYSQL_PASS = ’abcd123’ #前端数据库密码
MYSQL_DB = ’ss’ #前端数据库 库名

MANAGE_PASS = ’a1234567’ #随意填写一些字符
#if you want manage in other server you should set this value to global ip
MANAGE_BIND_IP = ’127.0.0.1’
#make sure this port is idle
MANAGE_PORT = 23333
这些信息按照自己服务器的情况填写就好了

接下来,你只需要安装自己喜欢的网页服务程序和前端就好了,为什么我不提供前端的教程呢?这里,千万别着急,找到一个适合自己的前端程序并按照他的教程安装吧,有各种各样魔改的,也有原版的,总之如果这里顺着我的教程乱来,装了一个你不喜欢的前端,这在后期是非常麻烦的。

等你装好了前端,也就顺利的完成了SS的搭建还有一件事,为了让你的SS程序可以在断开 SSH之后还能用,需要用screen来守护,用法是这样的

首先,键入scerrn来启动screen
Ctrl+a 然后按c 建立一个新的screen 会话
Ctrl+a 然后按n 跳转到下一个screen 会话
Ctrl+a 然后按p 返回到上一个screen 会话
Ctrl+a 然后按d 将当前的screen 会话放在背景执行 // 返回到最开始的工作环境
Ctrl+a 然后按(大写)S 分离一个screen 会话出来,分离后用Ctrl+a 然后按tab键 在分离出来的各screen间跳转。
screen -ls 列出当前所有的screen会话
screen -r 进程号 之前Ctrl+a 然后按d 放在背景执行的会话 呼叫回来。
ssh中如果发生了突然断线 那么你重新登陆后 screen -ls 会发现 有screen的状态是处于(Attached)状态 此刻我们使用 screen -d 将他强行放到背景,然后再用screen -r 进程号将他呼叫回来。
如果 screen -ls 看到有死亡的会话 可以用screen -wipe 进程号 将他杀掉。
如果想在一个screen的会话里关闭会话,输入exit即可

说正事,Debian下多用户Shadowsocks服务器的搭建

@Shell2年前

08/5
15:17
好玩的 计算机

树莓派2 ModeB到手试玩

这篇文章一拖再拖,今天才想起来继续写完这篇文章。

那是很久之前…..Zephray送我一片树莓派玩,其实这也是我第一次比较正式的玩Linux系统,也遇到很多非常基础的东西都不会的问题。

这是当时刚刚拿回来的样子:

手机很烂,不过就是这样,几乎是全新的东西,虽然说知道这种卡片电脑不是最小的卡片电脑,但还是觉得很萌很有意思(

因为板子上没有eMMC或者Flash,所以我需要自己准备一个内存卡来放系统镜像一类,树莓派2代只支持microSD的,可我没有读卡器,于是就直接拿手边上有SD卡功能还支持USB的路由器,直接用dd命令烧写系统。
这个路由器用的芯片就是最常见的MT7620A,说到这里我不得不要鄙视一下可恶的厂商,你会发现,市面常见的“高端”路由都在用这垃圾芯片,明明性能不足几十年前的386,还非要搞成家庭服务器一样,我服。于是,托这个腊鸡路由性能的福,4GB大小的镜像,花了一个小时才写入到内存卡里,神烦…..

系统搞定了,就上电开机吧,嗯,上电开机了。

其实刚刚拿到这个东西,我对Linux系统的了解几乎就是个皮毛,什么都不懂,然后花了些时间,终于知道了linux里面比较基础的命令一类的用法,上手第一件事就是安装了VNC一类的服务,要不然我非得死在这….后来我才明白,实际是VNC的最大用途就是可以在不用screen一类守护进程工具的帮助下实现SSH断开后程序还在运行的效果….

截止到现在,树莓派的用途已经弱化了,我还在想一些新的玩法来玩,几分钟前已经执行了sudo shutdown now了,不过它给我后来对Linux的了解起到了绝对大的作用,顺便PO一张很久之前的照片,那时候它主要承担了DLNA服务器的作用,还可以通过DS18B20读取室内温度一类的。
大概就是这样

 

附带一张很难找到的图片,树莓派GPIO定义什么的

树莓派2 ModeB到手试玩

@Shell2年前

07/21
21:44
路由器

路由管理页萌化,特别的玩法

2017年4月15日更新:最新版固件已加入自定义页面选项,本文作废,图片全部删除(因为没有意义了)

 

本教程仅用于Padavan固件,其他的就不用看了,前文是研究过程和我的一些想法,如果不想看可以直接往后翻,会找到你想要的。

 

 

很早就萌生出“我要有更好看的路由”这种想法,但那时受限于客观条件和技术,一直没有实现(当时在用的是基于VxWorks的水星普通路由)

再后来用上了自己改的OpenWrt路由,但是受限于内存空间,我连luci都没装,但那时候已经对智能路由有了初步的概念,我知道了在基于Linux的路由下,路由就像电脑一样运行着自己的操作系统和其他应用程序,管理页面也只是个使内部软件和用户可以方便交互的网站而已,那么,既然是个网站,我也可以自定义网站内容喽?

玩OpenWrt的朋友都知道,OpenWrt以可定制性,开源而著称。其可定制型尤为明显的体现在了其rootfs用户有着完全的写入读取权限,甚至在不当的设置下,你开的迅雷离线下载会把你要的小电影给下载到路由内置的只有仅仅几十兆甚至几兆的SPI Flash里面。但同时,玩家们也知道,OpenWrt实在是太麻烦了,他始终是各种大神手中的玩物,有时候一言不和就要自己交叉编译个新软件,工具链也要编译一编,实在是烦人,于是我换上了Padavan。
(正是因为上文提到的可直接写入rootfs,所以这里不讲怎么进行OpenWrt的萌化)

Padavan也是一个开源项目,但他有着相对易用的设置界面,同时也有一些国内开源工作者奉献的各种小功能,小插件,虽然定制性不好也不支持多拨,但易用性方面完爆OpenWrt,同时,正是因为定制性问题,也给我带来不少的麻烦。

几天之前,我用斐讯K1刷了这个固件,但是刷好之后觉得不太好看,就重拾了很久之前美化路由的想法,不过爱好特质,咱们走些二次元的,自然就是萌化了。期间因为本人缺少很多Linux的知识,知道的命令很少,所以寻求了很多人的帮助也查阅了一些资料。

这是原本的样子:

啧啧,其实不难看对不对,但我自己不太喜欢这个logo(这个logo是国内汉化编译组的logo)想要换掉,再顺便改一改配色什么的,先不提CSS。利用浏览器开发工具,我很快定位logo文件位于这里:

根据一般的想法,直接去修改就好了,于是我打开了路由的SSH功能,并使用一个可以方便浏览文件结构并进行文件操作的软件WinSCP,然后连接到了我的路由。

嗯,先给www以777权限,然而失败了:
/$ chmod 777 -R /www/
chmod: /www/: Read-only file system
chmod: /www/: Read-only file system

那么是不是因为没有分配权限呢?
/$ busybox mount -o remount,rw /

我想现在可以了,找到那个图标文件,删除!

奇怪了,这就非常不科学了,dmesg也没有看到什么异常,总之就是不能正常低赋予其删除权,后来ntzyz提出了一个意见,他让我试试修改启动参数看看能不能获得写入权,然而我对嵌入式的了解实在是欠缺,网上也缺少相关教程,只好选择放弃。


于是,正确的打开方式在今天就被研究出来了

其实不能说是我研究出来的,这也是我参照了Padavan的文档和一些帮助主题才知道的:

首先,这个固件所有不能修改的内容都是在Flash里面的 ,要用到mtd_storage.sh save 指令才能把放在/etc/storage目录下的内容压缩打包,存进 mtd5 的区块,然后用mound bind来把存进这个区块的数据覆盖在原来的数据上,可这没有卵用,因为源文件没有被修改,倒是类似于把文件链接过来的操作。不过这也是对于我的技术而言唯一可行的方法了,先看看我们有多少空间用于萌化吧
[Shell-Route /home/root]# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 “Bootloader”
mtd1: 00010000 00010000 “Config”
mtd2: 00010000 00010000 “Factory”
mtd3: 0011b180 00010000 “Kernel”
mtd4: 00654e80 00010000 “RootFS”
mtd5: 00040000 00010000 “Storage”
mtd6: 007b0000 00010000 “Firmware_Stub”
[Shell-Route /home/root]# cat /proc/partitions
major minor  #blocks  name

31        0        192 mtdblock0
31        1         64 mtdblock1
31        2         64 mtdblock2
31        3       1132 mtdblock3
31        4       6483 mtdblock4
31        5        256 mtdblock5
31        6       7872 mtdblock6

就是那个mtd5,嗯,我们只能拿出来256kb来萌化,找个背景大图肯定存不下了。既然是萌化,那肯定就是替换资源喽,所以用以下命令替换
cd  /etc/storage/bin/
wget 你的资源url
chmod 777 你的资源
mtd_storage save
mount --bind /etc/storage/bin/你的资源 /你要替换的资源路径

很简单吧。不过,这样做的话需要每次开机都挂载一遍,所以我们需要把挂载命令放在启动脚本里
mount bind /etc/storage/bin/你的资源 /你要替换的资源路径

然后使用这个命令,保存修改的脚本
mtd_storage.sh save

至此萌化完毕

之前的效果,半成品:

 

路由管理页萌化,特别的玩法