linux内核中添加一个新的socket协议域

linux内核中添加一个新的socket协议域,第1张

(1)编辑include/linux/socket.h,定义新的协议域和相关结构:

定义新的协议域:

#define PF_NEW_DOMAIN 17

定义新的套接字结构:

struct sockaddr_new_domain {

short sn_family/* 套接字类型 */

char sn_data[128]/* 地址数据 */

}

(2)编辑net/socket.c,定义新的协议函数:

static struct net_proto_family new_domain_family_ops = {

.family = PF_NEW_DOMAIN,

.create = new_domain_create,

.owner = THIS_MODULE,

}

/* 新协议创建函数 */

int new_domain_create(struct net *net, struct socket *sock,

int protocol, int kern)

{

/* 创建新的套接字 */

return 0

}

(3)编辑net/core/sock.c,把新的协议函数注册到内核:

/* 注册新协议函数 */

void __init new_domain_init(void)

{

sock_register(&new_domain_family_ops)

}

(4)编辑net/core/dev.c,实现新的协议处理函数:

/* 新的协议处理函数 */

int new_domain_handler(struct sk_buff *skb)

{

/* 处理新的协议数据包 */

return 0

}

(5)编辑net/core/net_namespace.c,把新的协议处理函数注册到内核:

/* 注册新的协议处理函数 */

void __init new_domain_init(void)

{

dev_add_pack(&new_domain_packet_type)

}

Linux无法加入域的原因是域名输入方式不对,通信可能出现不正常

解决方法:打开终端管理器,输入setup,选择运行工具、选中全部用户信息和验证、输入正确的域名即可、选中/bin/bash这个选项然后选中加入域、选择是、输入域的管理员密码,点击确定即可。

拓展:

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX *** 作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

1.配置DNS

# vi /etc/resolv.conf

nameserver 192.168.2.30

nameserver 192.168.2.32

# vi /etc/host.conf

# nslookup 192.168.2.32 DNS查找

# net time SET 192.168.2.32 时间同步,客户端以服务器时间为准

2.samba

首先确保Linux系统中安装了samba包,并用下述命令来检查samba包的基础库支持,一般的RPM安装都不会有问题。

# smbd -b | grep LDAP

HAVE_LDAP_H

HAVE_LDAP

HAVE_LDAP_DOMAIN2HOSTLIST

...

# smbd -b | grep KRB

HAVE_KRB5_H

HAVE_ADDRTYPE_IN_KRB5_ADDRESS

HAVE_KRB5

...

# smbd -b | grep ADS

WITH_ADS

WITH_ADS

# smbd -b | grep WINBIND

WITH_WINBIND

WITH_WINBIND

3.krb5配置

配置编辑/etc/krb5.conf,配置完成后,执行

# kinit administrator@HXBANK.COM

4.Samba配置

编辑配置/etc/samba/smb.conf后,重启samba服务

# service samba restart

# net ads join -U administrator@HXBANK.COM 加入域,这时需要输入域管理员密码

5.winbind配置

编辑/etc/nsswitch.conf,更改passwd和group为(files需视你linux系统配置NIS与否,如配置NIS,则为compat)

passwd: files winbind

group: files winbind

保存后(重)启动samba服务。(重)启动winbind。

用 wbinfo -u检索用户,wbinfo -g检索用户组来测试winbind是否正常。

1.配置DNS

# vi /etc/resolv.conf

nameserver 192.168.2.30

nameserver 192.168.2.32

# vi /etc/host.conf

# nslookup 192.168.2.32 DNS查找

# net time SET 192.168.2.32 时间同步,客户端以服务器时间为准

2.samba

首先确保Linux系统中安装了samba包,并用下述命令来检查samba包的基础库支持,一般的RPM安装都不会有问题。

# smbd -b | grep LDAP

HAVE_LDAP_H

HAVE_LDAP

HAVE_LDAP_DOMAIN2HOSTLIST

...

# smbd -b | grep KRB

HAVE_KRB5_H

HAVE_ADDRTYPE_IN_KRB5_ADDRESS

HAVE_KRB5

...

# smbd -b | grep ADS

WITH_ADS

WITH_ADS

# smbd -b | grep WINBIND

WITH_WINBIND

WITH_WINBIND

3.krb5配置

配置编辑/etc/krb5.conf,配置完成后,执行

# kinit administrator@HXBANK.COM

4.Samba配置

编辑配置/etc/samba/smb.conf后,重启samba服务

# service samba restart

# net ads join -U administrator@HXBANK.COM 加入域,这时需要输入域管理员密码

5.winbind配置

编辑/etc/nsswitch.conf,更改passwd和group为(files需视你linux系统配置NIS与否,如配置NIS,则为compat)

passwd: files winbind

group: files winbind

保存后(重)启动samba服务。(重)启动winbind。

用 wbinfo -u检索用户,wbinfo -g检索用户组来测试winbind是否正常。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11329909.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存