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

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

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

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

对于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共存的解决方案

有关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”ErlangJson库windows7x64+msys2环境下构建与使用

erlang-rfc4627库GitHub链接

构建环境:
windows7 x64
msys2 64bit已预先在msys2中使用pacman装好GNU AutoMake
msys2启动脚本如下

@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盘方法

cd /D/

其余操作与linux下一致

切换到rfc4627项目所在目录后
执行make指令 自动根据Makefile文件构建项目
使用make dist可构建文档

在erlang控制台(werl)使用cd(“路径”).切换工作路径到项目ebin文件夹
执行指令application:start(rfc4627_jsonrpc).启动jsonrpc应用程序
执行l(rfc4627).指令单独加载rfc4627解析模块

 

安装ArchLinux

安装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