archlinux 安装bftpd服务器

惯例的参考:http://bftpd.sourceforge.net/doc/en/bftpd-tutorial.html

1
pacman -S bftpd

安装后bftpd.conf配置文件在/etc目录下 几乎不用修改即可使用 独立模式启动服务器

1
/usr/sbin/bftpd -d

直接以IP默认端口连接  以非root账户登录 终止则直接杀死进程即可

1
killall bftpd

需要以后台服务方式运行则最方便的方法是使用xinetd超级服务器

1
pacman -S xinetd

安装 启动并设置自启动

1
2
systemctl start xinetd
systemctl enable xinetd

/etc/xinetd.conf文件中添加以下内容让xintetd托管bftpd

1
2
3
4
5
6
7
8
9
10
11
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/bftpd
log\_on\_success += HOST PID
log\_on\_failure += HOST
nice = 10
}

完成

archlinux安装Yaourt

参照:https://wiki.archlinux.org/index.php/Yaourt_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
首先,使用添加源的方法已经无法安装yaourt了
所以使用第二个方法

首先安装 base-devel包(needed 前面是两个英文短横线,WP会自动转义)

1
pacman -S --needed base-devel

全部安装完成后检查fakeroot 和 sudo是否安装好
可以直接再安装一下

1
2
pacman -S fakeroot
pacman -S sudo

有关sudo的相关配置参见我的linux安装文档 点这里

Note:必须在非root用户下才能使用makepkg 指令

之后使用你喜欢的下载器或者安装wget来执行wiki中的步骤(其中wget 可能要安装才能用)

安装 package-query:

1
2
3
4
5
6
7

wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
tar zxvf package-query.tar.gz
cd package-query
makepkg -si
cd ..

安装 yaourt:

1
2
3
4
5
6

wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar zxvf yaourt.tar.gz
cd yaourt
makepkg -si
cd ..

安装完成后记得使用以下指令更新数据库(develaur前面是两个英文短横线)

1
yaourt -Sy --devel --aur

也可以直接如下更新整个系统
同步数据库,升级软件包,搜索 AUR 和 devel (all packages based on cvs, svn, git, bzr(…)-version) 升级:(develaur前面是两个英文短横线)

1
yaourt -Syu --devel --aur

下面这条命令将会检查升级包括AUR软件包在内的所有系统软件:

1
yaourt -Syua

然后就可以愉快地像使用pacman一样使用yaourt了

另外:可以使用如下指令合并.pacman/pacnew

1
yaourt -C

Editer时可以对新旧文件进行对比
但是需要调用vimdiff
所以需要安装vim


另,yaourt的快捷合并pacnew额功能不能完全替代手工管理
所以对于危险的配置文件更新
比如sudo的配置文件就需要手动更新替换(sudo配置文件需要专用的visudo进行编辑并进行语法检查后保存,否证配置文件失效会导致无法进root,系统报销)


上面的方法的下载地址貌似改了路径
已经404了

安装部分改为以下方法

1
2
3
4
5
6
7
8
9
git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..

git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..

因此安装依赖包也改变为

1
2
pacman -S --needed base-devel
pacman -S git wget

参照:https://archlinux.fr/yaourt-en

raspberry pi 2 安装archlinux arm 版

首先:第一点:很重要所以放在第一:

树莓派也是标准的计算机,也要按照正常的操作流程来开关机,否则会出现各种稀奇古怪匪夷所思的问题 树莓派的小黄灯在闪或者亮的时候代表在进行磁盘操作

很重要所以放在第一 然后安装教程:http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 说说其中的重点 不要指望能在windows下进行这个操作 mkfs.vfat指令不能用就去安装dosfstools这个包

pacman -S dosfstools

笔记本自带的读卡器不能被VM虚拟机正确识别,所以需要使用USB读卡器 解压文件时要使用root权限解压出来的文件的权限才够高,sudo并做不到

sudo su

另外在这里吐槽一下某些教程动不动就说要打开root用户啦 用root用户才方便啦 sudo好麻烦啦 不知道是些什么心态 另:原版arch的操作在arm上并没有什么不一样 该怎么做就可以怎么做

archlinux搭建SS服务器

参考:https://wiki.archlinux.org/index.php/Shadowsocks_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
说一下步骤以及WIKI上不清楚的地方


首先是安装SS

1
pacman -S shadowsocks

再cd到 /etc/shadowsocks/ 目录创建 xxx.josn 的服务器配置文件(同时这里放置的也是客户端配置文件)

服务器版本配置文件内容(这里是重点,网上好像都没说清楚):

1
2
3
4
5
6
7
8
{
"server":"0.0.0.0",
"server_port":443,
"local_port":1080,
"password":"your-passwd",
"timeout":300,
"method":"aes-256-cfb",
}

其实和客户端配置文件几乎一样
只是服务器的重要在于server_port、password、method这三个
两个local并没有存在的意义
server也直接0.0.0.0就ok
客户端连接时直接匹配server_port、password、method就可以正确连接上服务器
至于fast_open这个linux特有特性,我客户端使用的是windows所以并不关心,也无法测试

然后
配置文件写好后
启动服务

1
systemctl start shadowsocks-server@xxx

上面指令最后@后面的xxx就是json配置文件的名字(无后缀)(注意这里没有通常的.service)
这时可以用以下命令查看是否启动完

1
systemctl

如果有问题可以使用如下指令查看详细错误信息

1
systemctl status shadowsocks@xxx

同时也可以连接试试看 确认正常后替换start为enable设置自启动

1
systemctl enable shadowsocks@foo

显示创建链接成功就ok了 重启服务器测试是否自动启动 之后就可以愉快地SS了~~~

有关Erlang分布式节点长名试验

节点名分长名与短名两种
节点名由前缀与后缀组成

1
本机唯一节点名(前缀)@本机地址(后缀)

对于cookie
两个几点连接时cookie必须一致 否则连接请求会被阻止

对于长名
节点名前缀在同一个机器上必须要唯一 即使同一机器上的多个节点后缀可以不同
节点长名后缀可使用可由DNS解析的域名或者直接为IP地址
当连接使用域名的节点会访问由DNS服务器解析的对应IP

当使用IP作为后缀时
使用net_adm:ping(‘长节点名’).建立连接时会连接到到对应的IP地址处
若目标节点后缀与目标IP不同时无法建立连接 即使是ping通后的自动建立全连通网络时也无法建立到错误的节点处
若使用127.0.0.1作为后缀 则只有本机节点能够连接到以127.0.0.1作为后缀的节点
若使用错误的IP地址 则无法接受ping 但其可以ping其他正确的节点 但在全连通过程中无法连接到其他设备的节点

有关ICS服务与Pcap_DNSProxy共存的解决方案

因为学校使用客户端拨号上网
之前又使用了netsh开启win7的虚拟wifi(HotWifi)功能共享上网
现在要给承担拨号以及wifi共享任务的网关机添加一个DNS服务器实现反DNS投毒的功能
但是因为实现从客户端拨号连接到虚拟无线热点之间使用的ICS网络共享服务自带了DNS以及DHCP功能 占用了53端口
以至于安装的Pcap_DNSProxy服务器无法打开53端口正常工作

想到的解决方案是将Pcap_DNSProxy的服务设置为自动启动
并将ICS服务设置为自动延迟启动
使得在正常情况下Pcap_DNSProxy总能比ICS先启动并占用53端口
以此屏蔽ICS的DNS服务功能

另外
因为ICS的DHCP自动IP分配功能IP分配缓慢且无法手动设置IP
使用了一个开启了桥接功能的路由并设置好DHCP来以抢先机制取代ICS的又慢又难用的DHCP功能
而且以路由器作为网络中心也可以解决因为作为无线热点的USB无线网卡由于性能不足导致内网传输缓慢以及全速传输内网传输时硬件过热导致的设备丢失问题

附当前网络物理结构
物理结构

网络逻辑结构(点击看大图)
逻辑结构

“erlang-rfc4627”ErlangJson库windows7x64+msys2环境下构建与使用

erlang-rfc4627库GitHub链接
构建环境: windows7 x64 msys2 64bit已预先在msys2中使用pacman装好GNU

AutoMake msys2启动脚本如下

script
1
2
3
4
5
6
@SET PATH=d:\\Code\\C++\\x86\_64-4.9.2-release-posix-seh-rt\_v4-rev2\\mingw64\\bin;d:\\Code\\Erlang\\erl6.4\\bin;D:\\Code\\Perl64\\site\\bin;D:\\Code\\Perl64\\bin
@SET CPLUS\_INCLUDE\_PATH=d:\\Code\\C++\\x86\_64-4.9.2-release-posix-seh-rt\_v4-rev2\\mingw64\\opt;d:\\Code\\C++\\x86\_64-4.9.2-release-posix-seh-rt\_v4-rev2\\mingw64\\opt\\include
cd /d d:\
cd d:\\Code\\msys64\
msys2_shell.bat
pause

启动脚本中已配置好环境变量
包含常用的mingw-w64、shell脚本用perl、添加的erlang执行文件bin路径、mingw相关头文件搜索路径
设置好了msys2初始目录后
启动原生的msys2_shell启动脚本

附msys2中切换到D盘方法

1
cd /D/

其余操作与linux下一致
切换到rfc4627项目所在目录后
执行make指令
自动根据Makefile文件构建项目
使用make dist可构建文档
在erlang控制台(werl)使用cd("路径").切换工作路径到项目ebin文件夹
执行指令application:start(rfc4627_jsonrpc).启动jsonrpc应用程序
执行l(rfc4627).指令单独加载rfc4627解析模块

安装ArchLinux

参考: http://www.cnblogs.com/mad/p/3280041.html https://wiki.archlinux.org/index.php/Installation\_guide\_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29 https://wiki.archlinux.org/index.php/Installation_guide Note;使用iso引导进入系统后,当前目录下可用ls命令看到一个名叫install.txt的文件,可使用nano install.txt查看,其中有所使用iso镜像对应的官方的安装向导信息 1、分区

cfdisk

Note:新版cfdisk会要求选择引导类型 如果使用grub作为引导程序则必须分区为dos(MBR) grub+gpt则必须要留出一个BIOS Boot分区

Note: For GRUB to boot from a GPT partitioned disk on a BIOS based system, one has to create a BIOS boot partition. Please note this partition is unrelated to the /boot mountpoint, and will be used by GRUB directly. Do not create a filesystem on it, and do not mount it.

参见:https://wiki.archlinux.org/index.php/Partitioning#Choosing\_between\_GPT\_and\_MBR ·注意【Bootable】,/ 分区一定要Bootable,如果你单独划分了/boot,那这个bootable。 2、格式化

fdisk /dev/sda

Command(m or help):p(这里输入p,查看你现在的分区和名字) q退出fdisk 然后输入下面的命令格式化:

mkfs.ext4 /dev/sda1

如果你还分了/home,就继续 mkfs.ext4 /dev/sdaX x是你的home的分区名。 3、挂载分区

mount /dev/sda1 /mnt

如果你还有/home

mkdir /mnt/home mount /dev/sda2 /mnt/hom

Note:Linux中,设备均在/dev/目录下,磁盘设备名格式一般为/sda/、/sdb/、/sdc/,磁盘上的卷名格式一般为/sda1/、/sda2/以此类推 4、选择镜像站点

nano /etc/pacman.d/mirrorlist

找带China的放到最前面。 nano使用方法:PageDown PageUp 滚屏,Ctrl+V 向下翻页,Ctrl+Y 向上翻页, Alt+6 复制当前行,Ctrl+u 粘贴,Ctrl+6标记开始点,标记开始点后移动光标选择文本,Alt+6复制开始点到当前点之间选白的内容,按Ctrl+w写入修改,Ctrl+x 退出。 5、安装系统

pacstrap /mnt base

当pacstrap后没有-i参数时会全自动下载安装,可以去干别的事情了,中间会出现卡屏,大概是因为休眠之类的原因吧,按上下箭头就会激活且不影响下载进程。 6、生成fstab

genfstab -U -p /mnt >> /mnt/etc/fstab cat /mnt/etc/fstab

第一条是生成,第二条是查看生成的内容,没问题就Ctrl+x退出即可。 7、配置系统 先要chroot切换到新系统,命令如下:

**arch-chroot /mnt **

a、配置locale,语言 编辑/etc/locale.gen,这个文件所有的内容都是注释的,所以在最上面添加en_US.UTF-8 UTF-8即可。 Note:我一般是直接解除下面的所需的注释即可

nano /etc/locale.gen en_US.UTF-8 UTF-8

然后执行locale-gen自动配置

locale-gen

接着配置locale.conf Note:locale.conf 在 /etc/locale.conf ,在其中添加一行 LANG=语言 即可,一般是LANG=en_US.UTF-8,或者按照上一步的设置 b、给计算机起名

echo myhostname > /etc/hostname

c、配置网络 将网络设置成自动获取(启动DHCP服务)

systemctl enable dhcpcd.service

d、设置root密码

passwd

e、安装GRUB

pacman -S grub

grub-install –target=i386-pc –recheck /dev/sda

Note:嫌命令长可以直接省去中间的–target=i386-pc,grub一般会自动识别到平台 Note 2:这一步很重要,很重要,很重要所以说三次。正常应该会显示“Installation finished. No error reported.”。如果显示其他内容或者有带Waring或者Error的信息出现就表示出了错误。前面有两次要么就是mount /mnt的时候错误地挂载了/dev/sda(整个磁盘),要么是cfdisk创建分区表的时候选择了gpt导致这里出现警告和错误。 然后配置grub

grub-mkconfig -o /boot/grub/grub.cfg

8、卸载mnt,重启 退出chroot

exit

卸载mnt

umount /mnt

Note:如果前面挂载的时候错挂载了整个磁盘或者是grub-install的步骤出了问题,这一步解挂载的时候会显示忙碌,然后一直卸载不了/mnt挂载点 重启

reboot

9、安装桌面环境 Note:这里说一下pacman基本用法 第一个参数最常用的是-Ss(查询远程数据库),-S(安装指定名称的包),-Syu(同步远程数据库在本地的元信息) 参见:https://wiki.archlinux.org/index.php/Pacman\_tips\_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 一般我的步骤是先-Ss查询软件包,找到全名,再-S全名 安装 a、安装xorg-server

pacman -S xorg-server xorg-server-utils xorg-xinit

Note:上面这一步安装了三个包xorg-server、xorg-server-utils、xorg-xinit 缺少xorg-server会导致测试Xorg或者启动xfec4时出现/usr/bin/X找不到的错误 b、安装显卡驱动 如果你不知道自己是什么显卡,就用下面的命令查看下:

lspci | grep VGA

然后执行下面的命令搜索下匹配你显卡的驱动

pacman -Ss xf86-video | less

VMware虚拟机安装xf86-video-vmware这一个 其他的型号都可以在pacman使用-Ss指令搜索时多个关键字之间使用空格分隔开 例如“xf86-video intel” 、“xf86-video nvidia” 或者使用“貌似是万能”的“xf86-video vesa” 作为搜索关键字 笔记本还可以装触摸板驱动

pacman -S xf86-input-synaptics

如果想要测试X环境是否安装好了,可以执行下面的命令。

pacman -S xorg-twm xorg-xclock xterm startx exit pkill X

c、安装xfce4桌面环境

pacman -S slim

先安装slim,这是一个图像、登录管理器,可用于xfce4的自启动。

pacman -S xfce4

现在,大功告成!!启动!!!

startxfce4

Note:如果这里启动不了,显示/usr/bin/X没有这个文件或者目录就表示上面x环境没装全 d、安装字体

pacman -S wqy-microhei wqy-zenhei wqy-bitmapfont

至于美化,都是通过界面操作的,system-setting可以设置字体,另外terminal的preference可以设置它用的字体。 Note:可以不安 9、添加一个用户 总不能用root工作,所以我们要添加一个普通账户。

pacman -S sudo useradd -m yourname passwd yourname

然后把该用户添加到一些组: audio disk locate network optical power storage video wheel systemd-journal

gpasswd -a yourname wheel

我是添加了power storage network wheel systemd-journal 因为虚拟机,基本只是用terminal学习一些其他的语言,其他不干。(嗯.这里需要一个个添加) 给予这个新用户sudo权限 参照:https://wiki.archlinux.org/index.php/Sudo_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29 启动编辑sudoers文件专用的编辑器

sudo的配置文件是/etc/sudoersvisudo会锁住sudoers文件,保存修改到临时文件,然后检查文件格式,确保正确后才会覆盖sudoers文件。必须保证sudoers格式正确,否则sudo将无法运行。

警告: /etc/sudoers格式错误会导致sudo不可用。必须使用visudo编辑该文件防止出错。

visudo

添加一行

用户名 ALL=(ALL) ALL

比如说

yourname   ALL=(ALL) ALL

:x保存并退出 10、设置xfce4自启动 安装搞vim,方便编辑文件。

pacman -S vim

注销或重启,然后用普通用户登录。

vim .xinitrc

删掉exe startxfce4前面的#,然后执行命令:

systemctl enable slim.service

这样下次启动,就自动启动xfce4了。       Other Note: 可以安装sudo简化root权限使用 增强安全性 参见:https://wiki.archlinux.org/index.php/Sudo_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29