Arch linux下iNode客户端的安装和使用方法

H3C中文叫新华三集团,是紫光集团旗下的核心企业,服务种类和范围还挺广泛的。由于公司数据中心使用了它的网关方案, 家里电脑是用的Arch Linux,要连上这个虚拟专用网络,并不是很简单。网上搜索资料,也没几个讲清楚的。

更为要命的是,有的高校校园网也是H3C的方案,很多Linux新手也要用这个iNode来进行网络认证。 这让人想到N年前上大学的时候,学校使用锐捷网络的客户端认证计费,Linux下也是各种连不上,或者说让新手望而生畏。你要用Linux,就上不了校园网,老实说,这种无可奈何的感觉本人真实体验过,严重影响技术学习。

作为过来人,为了帮助中国大陆的苦难学子,也顺带整理记录下,也许对人有用,但并不保证完全正确,我反正能连能用。

1. 首先建议读一读官方文档

如果是其它平台用户,完全不用看本文,直接读官方文档即可。

如果是Linux用户,需要浏览下官方文档,主要搞清楚它的逻辑步骤。

  • 下载iNodeManager

  • 定制iNode客户端

    老实说,作为一个C端用户,我有点不理解,一个客户端也需要通过这种方式生成,莫名其妙,略显繁琐。

  • 安装iNode客户端

  • 连接

还有它这iNodeManager下载地址貌似不是公开的(未考证),我只能理解成会有人给你这个下载链接的,我是从公司那里获取到的,校园网用户可能要联系网络管理人员。

2. 客户端安装

作为用户,大部分人都是用这个客户端连接服务端,所以我假设你通过上面的文档介绍,生成了那个定制后的客户端压缩包。

1➜  ~ pwd
2/home/mephisto
3➜  ~ file iNodeClient_Linux64_7.3\ \(E0630\).tar.gz
4iNodeClient_Linux64_7.3 (E0630).tar.gz: gzip compressed data, from Unix, original size modulo 2^32 94699520

比如我定制后得到的客户端 iNodeClient_Linux65_7.3 (E0630).tar.gz, 解压后进入:

 1
 2➜  ~ tar -xvf iNodeClient_Linux64_7.3\ \(E0630\).tar.gz
 3iNodeClient/
 4iNodeClient/iNodeClient.png
 5iNodeClient/netaudit.sh
 6iNodeClient/enablecards.ps
 7iNodeClient/iNodeAuthService
 8iNodeClient/checkSoft.sh
 9iNodeClient/updateexec.sh
10iNodeClient/inode.service
11iNodeClient/inode_dhclient_2.conf
12iNodeClient/clientfiles/
13iNodeClient/clientfiles/8021/
14iNodeClient/clientfiles/2041/
15iNodeClient/clientfiles/7000/
16iNodeClient/clientfiles/5020/
17iNodeClient/clientfiles/1100/
18iNodeClient/clientfiles/9019/
19......
20
21➜  ~ cd iNodeClient/

开始安装,需要切换下 su - root, 为什么要这么做,请看官方的安装文档

1➜  iNodeClient su - root
2[root@minipc iNodeClient]# ./install_64.sh
3iNode has been installed on the path /home/mephisto/Downloads/iNode/Linux/iNodeManager/iNodeSetup/iNodeClient.
4This operation will remove iNode. Are you sure to continue?[input Y/y to continue]:y
5chmod: cannot access '/etc/init.d/iNodeAuthService': Not a directory
6Nothing special for
7./install_64.sh: line 516: /etc/init.d/iNodeAuthService: Not a directory
8./install_64.sh: line 529: /etc/init.d/iNodeAuthService: Not a directory

上面那些报错可以忽略,因为我之前在一个很深的目录安装的,所以它会有提示删除原来的iNode,第一次装的时候目录为什么那么深,这个得问H3C,很离谱。

正常情况下,上述命令会自动启动一个AuthenMngService服务,在我的Arch Linux上,没有自动启动,估计是上面所示报错的原因。

所以,得手动启动下,保持它一直运行(由于我用的Tmux,一般要连机房网络的时候,开个tab连着,频率很低,当然你也可以直接做成启动项)。

 1[root@minipc iNodeClient]# ./AuthenMngService
 2[root@minipc iNodeClient]# LibDBus::LoadLibrary: dbus_bus_get = 0x70609d273c40
 3LibDBus::LoadLibrary: dbus_bus_register = 0x70609d2733d0
 4LibDBus::LoadLibrary: dbus_message_new_method_call = 0x70609d280ad0
 5LibDBus::LoadLibrary: dbus_error_init = 0x70609d26d440
 6LibDBus::LoadLibrary: dbus_error_free = 0x70609d26d480
 7LibDBus::LoadLibrary: dbus_message_unref = 0x70609d280830
 8LibDBus::LoadLibrary: dbus_connection_read_write_dispatch = 0x70609d275f90
 9LibDBus::LoadLibrary: dbus_connection_add_filter = 0x70609d270570
10LibDBus::LoadLibrary: dbus_connection_remove_filter = 0x70609d2719d0
11LibDBus::LoadLibrary: dbus_error_is_set = 0x70609d26dde0
12LibDBus::LoadLibrary: dbus_message_is_signal = 0x70609d27ba50
13LibDBus::LoadLibrary: dbus_bus_add_match = 0x70609d274950
14LibDBus::LoadLibrary: dbus_connection_send_with_reply_and_block_func = 0x70609d273180
15LibDBus::LoadLibrary: dbus_connection_unref_func = 0x70609d271670
16LibDBus::LoadLibrary: dbus_message_get_args_func = 0x70609d27f600
17LibDBus::LoadLibrary: dbus_message_get_args_valist_func = 0x70609d27f520
18LibDBus::LoadLibrary: dbus_message_append_args_func = 0x70609d281b40
19LibDBus::LoadLibrary: dbus_message_append_args_valist_func = 0x70609d2817e0
20LibDBus::LoadLibrary: dbus_message_iter_init_func = 0x70609d279ae0
21LibDBus::LoadLibrary: dbus_message_iter_recurse_func = 0x70609d27a500
22LibDBus::LoadLibrary: dbus_message_iter_get_basic_func = 0x70609d27f870
23LibDBus::LoadLibrary: dbus_message_iter_get_arg_type_func = 0x70609d27a3d0LibDBus::LoadLibrary: dbus_message_iter_next_func = 0x70609d27a350
24
25[root@minipc iNodeClient]# ps -ef |grep -i Authen
26root        3467       1  0 14:43 ?        00:00:01 ./AuthenMngService

3. 运行客户端开始连接

确认上述进程运行没有退出后,切换回普通用户。

1➜  iNodeClient whoami
2mephisto
3➜  iNodeClient ./iNodeClient.sh

最终它会弹出一个图形界面的客户端,按照官方文档介绍进行连接(校园网用户,协议不同,可能不一样,需要自己摸索下,应该不难的,我这里展示的是连虚拟专用网络,为什么不用那三个字母代替,因为文章还要发到公众号,你应该懂的,用心良苦,有苦说不出,反正大陆妖魔鬼怪多)。

iNode client

H3C还管它叫智能客户端,没看出来智能在哪里,连个网络都这么多步骤。

如上所示,填上自己的认证信息,连接成功后,会分到一个内网ip地址。

同时,会生成一个tun0的网卡,网卡的ip就是上面分到的ip(为了给公司保密,敏感信息我用xxx代替了)

 1➜  ~ ip a
 21: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 3    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 4    inet 127.0.0.1/8 scope host lo
 5       valid_lft forever preferred_lft forever
 6    inet6 ::1/128 scope host noprefixroute
 7       valid_lft forever preferred_lft forever
 82: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
 9    link/ether 70:70:fc:06:ac:aa brd ff:ff:ff:ff:ff:ff
103: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
11    link/ether e4:c7:67:3f:6a:06 brd ff:ff:ff:ff:ff:ff
12    inet 192.168.18.206/24 brd 192.168.18.255 scope global dynamic noprefixroute wlp2s0
13       valid_lft 42199sec preferred_lft 42199sec
14    inet6 fe80::f381:c4ab:a43d:ab0e/64 scope link noprefixroute
15       valid_lft forever preferred_lft forever
164: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
17    link/none
18    inet 10.xx.xxx.xx/24 brd 10.xxx.xx.xx scope global tun0
19       valid_lft forever preferred_lft forever
20    inet6 xxx::xxx:xxx:xxx:xx/64 scope link stable-privacy proto kernel_ll
21       valid_lft forever preferred_lft forever

系统路由表也会有相应变更, 几乎都要经过tun0,网络高手应该知道为什么会这样,普通用户看看就好。

这些都是联通网络后,双方协商自动处理的,退出客户端,路由表也会自动删除。

 1➜  ~ ip route
 2default via 192.168.18.1 dev wlp2s0 proto dhcp src 192.168.18.206 metric 600
 310.xx.xx.0/24 dev tun0 scope link
 410.xx.xx.0/24 dev tun0 scope link
 510.xx.xx.0/24 dev tun0 scope link
 610.xx.xx.0/24 dev tun0 scope link
 710.xx.xx.0/24 dev tun0 scope link
 810.xx.xx.0/24 dev tun0 scope link
 910.xx.xx.0/24 dev tun0 proto kernel scope link src 10.xx.xxx.xx
1010.xx.xx.0/24 dev tun0 scope link
11x.x.x.x via 192.168.18.1 dev wlp2s0

如果没有生成tun0,可能要自己再摸索下,那里弄错了。

连上网络后,你可以找个内网的服务测试下,因为是在家里连的虚拟专用网络,经确认访问公司服务没有问题。

后续连接,只要切换用户后,开启./AuthenMngService 后,再切回普通用户执行脚本启动即可,并不想系统有那么多自启动服务,按需开启挺好。

其实,这些应该都可以自动的,Desktop文件都创建好了(好吧,H3C还是略微有点智能的),懂的都懂。

1➜  iNodeClient cat iNodeClient.desktop
2[Desktop Entry]
3BinaryPattern=iNodeClient;
4MimeType=
5Name=iNodeClient
6Exec="/home/mephisto/iNodeClient/iNodeClient.sh"
7Icon=/home/mephisto/iNodeClient/resource/iNodeClient.png
8Type=Application
9Terminal=0

4. 总结

Arch linux在一些特定软件上,还是没有Deb系列的方便,要费精力多倒腾下,很多软件商默认只提供deb包。

作为一个N年的Linux用户,早已适应了这一切,不用Linux反倒浑身不舒服,比如公司用的电脑是Mac,各种Command键,经常要鼠标点点点,效率很低。

上班赚钱得和人协作,不能只考虑自己,也是一种妥协。

如果你对本文有疑问,可以关注我的微信公众号留言联系,有空我尽量回复处理。

最后修改于: Monday, June 10, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: