goto drop;
u8 tos, struct net_device *dev)
rth = rcu_dereference(rth->u.dst.rt_next)) {
if (((rth->fl.fl4_dst ^ daddr) | 异或 相同为0
(rth->fl.fl4_src ^ saddr) |
(rth->fl.iif ^ iif) |
rth->fl.oif |
(rth->fl.fl4_tos ^ tos)) == 0 &&
rth->fl.mark == skb->mark &&
net_eq(dev_net(rth->u.dst.dev), net) && 判断路由和报文的struct net指针地址是否相同
!rt_is_expired(rth)) { 路由项是否过期
dst_use(&rth->u.dst, jiffies); 表示路由的使用时间
RT_CACHE_STAT_INC(in_hit);
rcu_read_unlock();
skb_dst_set(skb, &rth->u.dst); 设置到skb中去
return 0;
}
RT_CACHE_STAT_INC(in_hlist_search);
}
rcu_read_unlock(); static struct rt_hash_bucket *rt_hash_table __read_mostly;
struct rtable *chain;
};
{
union
{
struct dst_entry dst;
} u;
/* Cache lookup keys */
struct flowi fl; 存放的是查找该路由节点的哈希值,该哈希值用源IP,目的地址,TOS一起确定
struct in_device *idev;
int rt_genid;
unsigned rt_flags; 一些结构性的标志,例如,RTF_UP表示这条路由可用
__u16 rt_type; 表明了目标地址的类型,例如RTN_LOCAL,RTN_MULTICAST
__be32 rt_dst; /* Path destination */ 用来存放目标的IP地址
__be32 rt_src; /* Path source */ 路由路径的起点ip地址
int rt_iif; &n
最近需要将一台安装 XP sp3 的“服务器”做成多用户可远程登录的主机,以下全文默认所说XP均代表 XP SP3。但是由于XP 默认不允许多用户远程登录的原因,网上大部分的教程大概可以分为三类:
1.修改系统设置,将XP 设置为最大只允许2个用户同时远程登录。
2.安装Winconnect 204 的破解软件,最大支持21个用户同时远程登录,针对的操作系统必须是 XP SP2
例如:http://hi.baidu.com/laolaoboke/item/15f90d0d27280b374bc4a36c
3.安装Winconnect 362 的破解软件,最大8用户,999终端同时远程登录,针对的操作系统必须是 XP SP3
例如:http://down.51cto.com/data/517589
最后第三类适合我的各项需求,采用了第三类方法
我的实验环境在一台Win7主机上,主机安装VMware 虚拟机,虚拟机里面安装两台 XP SP3 虚拟机,一台作为服务器,一台作为模拟终端,此外Win7 主机还作为另一台模拟终端。
主机及模拟设备基本情况:
模拟终端1:
名称:Win7 主机
网卡:以太网适配器 VMware Network Adapter VMnet8
IP:192.168.131.1
子网掩码:255.255.255.0
以下全文所说 终端1 均指此设备
模拟终端2:
名称:XP-20120
网卡:XP虚拟机自带网卡
静态IP:192.168.131.3
子网掩码:255.255.255.0
以下全文所说 终端2 均指此设备
服务器:
名称:XP-201202281525
网卡:XP虚拟机自带网卡
静态IP:192.168.131.2
子网掩码:255.255.255.0
以下全文所说 服务器 均指此设备
详细过程:
一、创建两台XP虚拟机
本文不详述,可参见其他软文,方法一样的。
二、Win7主机与两台虚拟机的互联
服务器设置:
虚拟机配置如下图
服务器IP配置如下图
终端2:
虚拟机配置如下图
终端IP配置如下图
终端1:
配置成功应该为以上三台机器ip可以互相ping 通
三、配置服务器允许远程连接
1.通过 “开始”-“控制面板”-“用户帐户”给系统管理员 administrator 设置密码,并且新建两个管理员用户,并设置密码
这里我新建的两个管理员用户是用户名为: dd 和 pds
并修改设置“更改用户登录或注销方式”
改为:
2.设置“我的电脑”-“属性”-“远程”如下图:
3.点击“选择远程用户”添加远程登录用户,如下图
配置成功性校验:此时应该可以通过 “终端2” 远程连接 “服务器”
四、安装 winconnect 362
1.下载安装包,安装里面的 WinConnect Server XP v2.0.0.362.exe 这里我使用默认安装路径 C:\Program Files\BeTwin ,安装成功后按照提示重启系统。
2.将安装包里Crack 文件夹里面的东西全部复制到安装目录下,并且运行“WCS362.vbs”
修改所需的用户数和终端数,并按照提示重启,此时软件还不能正常运行,需要修改远程端口
3.修改远程连接默认端口,确保以下注册表参数值如下
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
参数名:PortNumber 值:6110
4.运行效果。修改端口后,需要刷新一段时间才行
五:终端连接服务器
终端2使用用户 dd 连接服务器:
注意若登录后只显示黑屏,则按住 CTRL + ALT + END
服务器效果
终端1 使用pds 用户 连接服务器:
可以多终端使用同一个用户连接:
六、卸载 winconnect
1.卸载 winconnect软件主体
2.修改远程连接为默认端口 3389
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
参数名:PortNumber 值: 3389
注意:1.修改端口后,重启服务器端,才可以远程连接
2.在虚拟机中使用挂起功能,在下次启动时可能会出现ip能ping 通但是远程连接失效的情况
一、场景:
在Linux上操作命令:
mount -t nfs -o rw xxx.xxx.xxx.xxx:/nfs /nfs
出现错误提示:failed: RPC Error:RPC:程序未注册
二、分析步骤:
第1步:检查对方服务器是否做了连接限制
登录到对方服务器 , 查看/etc/hosts.allow 和 /etc/hosts.deny 文件.其中hosts.deny 是拒绝了其中对应IP的主机的连接,hosts.allow 是允许其中对应IP主机的连接。
[root@lsxy ~]$ tail /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
[root@lsxy ~]$ tail /etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
从里面内容可知,对方服务并未对他方主机的连接做任何限制。
第2步:是否是由相关服务未启动导致:
检查portmap服务、nfs服务。其中portmap服务是用来支持RPC连接,RPC被用于NFS以及NIS 等服务。
1、检查portmap服务的状态: [root@lsxy etc]# service portmap status
portmap (pid 20862) 正在运行...
说明portmap服务正常启动运行。
2、检查nfs服务的状态:
[root@lsxy etc]# service
nfs status
rpc.mountd 已停
nfsd 已停
rpc.rquotad 已停
问题应该差不多查找到了——nfs服务未启动导致。
三、解决方法:
1、启动nfs服务:
[root@lsxy
etc]# service nfs start
启动 NFS 服务: [ 确定 ]
关掉 NFS 配额: [ 确定 ]
启动 NFS 守护进程: [ 确定 ]
启动 NFS mountd: [ 确定 ]
2、重启portmap服务:
[root@lsxy
etc]# service portmap reload
停止 portmap: [ 确定 ]
启动 portmap: [ 确定 ]
这时再去操作命令