Linux 客户端用于接入VLAN.CN,与其他客户端或者网关路由器组网。
Linux 客户端需要与云端配合一起使用:
支持64位Linux系统:
64位Linux系统 | 版本 |
---|---|
Ubuntu | 1604、1804、2004、2110 |
Debain | 9、10 |
CentOS | 7、Stream 8 |
Fedora | 27、28、32、33 |
Rocky | 8 |
Rhel | 8 |
系统必须安装curl和net-tools
手动安装命令:
ubuntu和debian安装命令:
sudo apt install curl
sudo apt install net-tools
centOS和fedora安装命令:
sudo yum install curl
sudo yum install net-tools
rhel8安装命令:
sudo dnf install curl
sudo dnf install net-tools
没有特别说明,后面示例以及截图默认基于ubuntu系统,非root用户。
下载安装一条命令:
curl -kfsSL https://www.vlan.cn/dl/linux/install.sh | sh
在ubuntu和debain 系统上执行上述命令会自动安装net-tools。
vland需要root权限,运行vlancli也需要用root权限执行。
启动:sudo vlancli start
查看状态:sudo vlancli status
如下启动示例:
datadir是配置文件目录(从2022-04-12版本开始,配置文件目录默认是/etc/config/vlan
),根据命令sudo vlancli status
返回确认目录。
正常启动状态下status应该显示 running,如果显示 stop,请重新启动,如果status一直是stop请切换到 无法启动怎么办 排查问题,如果还有问题请联系我们。
停止 VLAN.CN
命令: sudo vlancli stop
可以执行ps相关命令检查vlancli 和vland进程是否彻底关闭。
sudo ps -ef|grep vlancli
sudo ps -ef|grep vland
vlancli 命令除了 vlancli start
、vlancli stop
、 vlancli status
基本命令外,还有功能命令(登录命令,加入、连接以及断开虚拟网命令,网关设置以及连接相关命令),具体可以执行 vlancli help
查看所有命令,如下是常用的功能命令使用详情(非root用户在命令前加sudo):
vlancli login USER PASSWD (URL)
USER是用户已经注册的用户名,PASSWD是用户名对应密码,URL默认是 https://api.vlan.cn ,可省略。
注意:如果修改过密码,请先停止vlan(执行:vlancli stop
)再使用新密码登陆。
root用户登录如下示例:
vlancli joinvlan [VlanId]
加入一个新的虚拟网,vlanId为虚拟网ID, 获取VlanId方式如下:
如果执行 vlancli status
命令结果没有看到连接的组,就需要执行 vlancli syncvlan
同步一下数据就可以显示了:
vlancli connect [dnet_id]
dnet_id为虚拟网ID,如下示例:
vlancli disconnect [dnet_id]
dnet_id 是虚拟网ID,vlancli status
命令可以看到当前连接(connected)的组以及断开(disconnected)的虚拟网,如下示例:
linux可以设置成网关。
开启/关闭网关功能:
vlancli subnet enable
vlancli subnet disable
vlancli vlan list
展示所有连接过的组信息以及组内节点ID。
vlancli getvlanlist
展示所有连接过的组信息以及组内节点虚拟IP。
返回的 "Name":"0B375C437F6D41B2ABB18AEB430BEA85"
是虚拟网络ID, "Alias":"relay2"
是虚拟网络名,后面的加入、连接、断开虚拟网需要用的虚拟网络ID,如下示例:
注意:命令只展示 连接过 的虚拟网,如果从未连接过的虚拟网上述命令是不会展示的,只能登录web或者云端查看。
设置成 gateway(网关)/client(客户端)角色:
vlancli set role gateway
vlancli set role client
设置完成必须重新启动 vland 后新角色才会生效。
查看所有子网、本地子网以及远程子网命令:
vlancli subnet list
vlancli subnet list local
vlancli subnet list remote
添加删除本地子网 :
添加本地子网格式:vlancli subnet add [SUBNET] [MASK] (enable)
命令举例: vlancli subnet add 10.0.3.0 24
删除本地子网,格式:vlancli subnet set [SUBNET] [MASK] [enable|disable]
命令举例: vlancli subnet del 10.0.3.0 24
设置本地添加的子网开启/关闭:
设置本地子网开启命令格式:vlancli subnet set [SUBNET] [MASK] [enable|disable]
举例:vlancli subnet set 10.0.3.0 24 enable
vlancli subnet set 10.0.3.0 24 disable
连接远程子网:
连接远程子网格式:vlancli subnet link [SUBNET] [MASK] [IP|NodeName]
举例:vlancli subnet link 10.0.3.0 24 6d470d91
断开远程子网:
断开远程子网格式:vlancli subnet unlink [SUBNET] [MASK] [IP|NodeName]
举例: vlancli subnet unlink 10.0.3.0 24 6d470d91
如果没有云端账户则需要先到云端注册。 web访问支持本地登录和远程登录。
已经启动VLAN.CN后,本机web访问可用:http://localhost:50069 或者 http://127.0.0.1:50069 。
本机验证码获取方式只要点击界面的获取验证码即可自动填写。
点击登录即可进入虚拟组网。
点击界面的用户注册可直接链接到云端注册页面。
点击偏好设置可以设置查看云端地址,默认 https://api.vlan.cn ,没有特殊情况不需要修改。
已经启动VLAN.CN后,如果本地web访问不方便,可以远程web访问。
远程web访问地址:http://x.x.x.x:50069 ,x.x.x.x为linux机器的网卡IP地址,本机必须可以ping通它,其次如果有防火墙必须开放 50069 端口。
VLAN.CN本机获取验证码,用于非本机的Web UI登录校验,获取命令:sudo vlancli token
如下图示:
注意:如果50069端口无法远程访问,需要检查防火墙iptables和firewall是否限制了端口访问?
虚拟组网界面,如下图示:
如果不用系统默认创建的组,可以在客户端创建新组,点击添加虚拟网按钮,弹出编辑框,可以自定义组名称以及组描述,其中组名为必填项,仅支持数字、字母和下划线,组描述为选填项。
新创建的组显示在组列表,如果要编辑、删除必须云端登录操作。
点击组列表的任意组可以进入连接界面:
其它节点也可以连接这个组。
注意:新节点首次连接可能会慢一点,可能需要重新刷新列表或者重新连接才显示已连接状态。
一个节点可以同时连接多个组,进入组内点击连接,然后返回到虚拟网列表点击另外的组继续连接即可。
如下图示节点连接了2个虚拟网:
节点10.1.1.147就可以同时ping通2个虚拟网内的在线节点。
连接成功可以查看连接协议:
查看连接链路,如下是中继模式,通过组内其它节点转发:
查看组内用户:
查看中继节点:
组内节点之间如果无法直连,可能会使用中继节点转发。
设备信息展示本机节点VLAN.CN详情,如虚拟IP、节点名称、角色、运行时间、收发流量、验证码等,如下图示:
设备信息可以修改本机节点的虚拟IP。
注意:修改虚拟IP不要和网络环境的IP地址冲突。
设置可以检查云平台地址(默认地址: https://api.vlan.cn ), 也可以开启网关模式,默认网关模式未启用。
sudo vlancli stop
sudo ps -ef|grep vlan
检查还没有vlancli和vland进程? 万一有的话就kill掉。 sudo apt list | grep dnet-vlan
sudo apt remove dnet-vlan
curl -kfsSL https://www.vlan.cn/dl/linux/install.sh | sh
重新安装。 sudo vland --v
查看新的版本号。 如果没有找到VLAN.X86_64可以执行 yum list installed | grep VLAN
查看
sudo yum remove VLAN.x86_64
curl -kfsSL https://www.vlan.cn/dl/linux/install.sh | sh
安装新版本。一般ubuntu系列系统可以实现覆盖升级安装
sudo vlancli stop
ps -ef|grep vlan
检查还没有vlancli和vland进程? 万一有的话就kill掉。 curl -kfsSL https://www.vlan.cn/dl/linux/install.sh | sh
覆盖安装。 sudo vland --v
查看新的版本号。 注意:部分系统(如centOS)无法覆盖安装,如下图示centOS安装新版本提示已经安装:
这就需要先卸载然后安装。
sudo vlancli start
执行后没有vland进程,则可能是依赖库找不到的原因。
确认系统支持vland,需要能够找到所有依赖库例如,进入vland所在目录,执行 ldd vland
,如果没有权限则需要授权 chmod 755 vlancli vland
需要拷贝对应依赖库到可以找到的lib目录,例如ubuntu可以拷贝到 /usr/lib/x86_64-linux-gnu/
目录,centOS可以拷贝到/lib64/
目录。 进入依赖库下载。
拷贝到系统对应目录。
一直到ldd vland命令能找到所有依赖库为止。
如果系统版本比较低可能会遇到报错GLIBCx.xx not found,点击参考安装需要的glibc版本。
内核版本太低的linux系统vland找不到对应版本的GLIBC,需要升级新版本。
如下以CentOS6.1系统为例:
老版本的vland ,ldd vland
或者vland --v
可能报错GLIBC2.25 not found,如下所示:
新版本的vland 只需要GLIBC2.15。
解决办法:安裝下载需要的glibc版本,如下以下载安装glibc-2.15为例:
查看系统glibc支持的版本
strings /lib64/libc.so.6 |grep GLIBC
rpm -qa | grep glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
tar -xzvf glibc-2.15.tar.gz
编译安装
cd glibc-2.15
mkdir build && cd build/
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install
注意:不要将 glibc 安装到默认的目录/usr/local
或者任何自定义的目录,请务必安装到/usr
目录
如果安装启动后远程web页面无法访问怎么办?
排查问题:
检查 VLAN.CN 端口是否限制? 启动以后,可用telnet 测试 50069 端口,正常远程访问如下图示:
如果不能访问则需要检查防火墙,可以执行sudo iptables -L
查看相关规则,如果有限制50069端口,就请放开;
执行 sudo systemctl status firewalld.service
检查防火墙是否运行,如果正在运行,请执行 sudo systemctl status firewalld.service
停止,然后重新测试访问50069端口。
如果VLAN.CN端口可以访问,但是web还是访问不了,如下图示:
检查www文件,执行 sudo vlancli status
确认配置目录, 查看配置目录下www是否有对应文件,正常如下图示:
如果没有www目录或者www目录下为空,那么就执行 curl -kfsSL https://www.vlan.cn/dl/linux/install.sh | sh
重新安装一遍。
www目录下文件完整后,可正常进入登录界面。
如果web界面登录成功后连接组一直不成功怎么办?
可能新旧版本上报内容冲突或者不同设备的machine-id相同导致的问题。
解决问题: