LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1177|回复: 9

[求助]如何改变route table

[复制链接]
发表于 2005-5-29 20:18:23 | 显示全部楼层 |阅读模式
小弟进来用busybox作系统shell,
但单单route命令无法加入,
但系统设计中需要改变route table,
请问有没有其他改变route table的方法或工具,
或者有关相关busybox增加route命令经验的朋友谈谈看法
 楼主| 发表于 2005-5-29 20:22:12 | 显示全部楼层
谢谢各位了
回复 支持 反对

使用道具 举报

发表于 2005-5-29 20:29:33 | 显示全部楼层
busybox是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-29 20:30:48 | 显示全部楼层
一种轻量的shell工具集
提供几乎所有shell工具
只是都是简化版
所以轻量
但在嵌入式系统中非常流行
回复 支持 反对

使用道具 举报

发表于 2005-5-29 20:33:41 | 显示全部楼层
linux下加路由是:
route add -net xxx.xxx.xxx.1 netmask 255.255.255.255 dev eth0
route add -net 123.100.0.0 netmask 255.255.0.0 gw xxx.xxx.xxx.1 dev eth0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-29 20:33:58 | 显示全部楼层
我是想问问有没有人用程序的方法改过route table
或者其他非工具
回复 支持 反对

使用道具 举报

发表于 2005-5-29 20:38:20 | 显示全部楼层
噢,这个问题啊。
strace一下route的运行,就可以看到它做了一些什么事了啊。可能是直接写/proc,也可能是用ioctl,不会很复杂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-29 20:44:46 | 显示全部楼层
有可能
但不会是proc
proc节点没有写操作
回复 支持 反对

使用道具 举报

发表于 2005-5-29 20:44:54 | 显示全部楼层

  1. execve("/sbin/route", ["route", "add", "-net", "111.111.0.0", "netmask", "255.255.0.0", "gw", "162.105.146.1", "dev", "eth1"], [/* 2
  2. 7 vars */]) = 0
  3. uname({sys="Linux", node="bigpc", ...}) = 0
  4. brk(0)                                  = 0x80533c8
  5. open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
  6. open("/usr/local/lib/tls/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  7. stat64("/usr/local/lib/tls/i686/mmx", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  8. open("/usr/local/lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  9. stat64("/usr/local/lib/tls/i686", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  10. open("/usr/local/lib/tls/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  11. stat64("/usr/local/lib/tls/mmx", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  12. open("/usr/local/lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  13. stat64("/usr/local/lib/tls", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  14. open("/usr/local/lib/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  15. stat64("/usr/local/lib/i686/mmx", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  16. open("/usr/local/lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  17. stat64("/usr/local/lib/i686", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  18. open("/usr/local/lib/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  19. stat64("/usr/local/lib/mmx", 0xbfffa7b4) = -1 ENOENT (No such file or directory)
  20. open("/usr/local/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
  21. stat64("/usr/local/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  22. open("/etc/ld.so.cache", O_RDONLY)      = 3
  23. fstat64(3, {st_mode=S_IFREG|0644, st_size=76185, ...}) = 0
  24. old_mmap(NULL, 76185, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75d8000
  25. close(3)                                = 0
  26. open("/lib/tls/libc.so.6", O_RDONLY)    = 3
  27. read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000X\1\000"..., 512) = 512
  28. fstat64(3, {st_mode=S_IFREG|0755, st_size=1563240, ...}) = 0
  29. old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75d7000
  30. old_mmap(NULL, 1272460, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xb74a0000
  31. old_mmap(0xb75d1000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0xb75d1000
  32. old_mmap(0xb75d4000, 10892, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb75d4000
  33. close(3)                                = 0
  34. set_thread_area({entry_number:-1 -> 6, base_addr:0xb75d7760, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_page
  35. s:1, seg_not_present:0, useable:1}) = 0
  36. munmap(0xb75d8000, 76185)               = 0
  37. open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
  38. fstat64(3, {st_mode=S_IFREG|0644, st_size=32148976, ...}) = 0
  39. mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb72a0000
  40. close(3)                                = 0
  41. brk(0)                                  = 0x80533c8
  42. brk(0x80743c8)                          = 0x80743c8
  43. brk(0)                                  = 0x80743c8
  44. brk(0x8075000)                          = 0x8075000
  45. open("/usr/share/locale/locale.alias", O_RDONLY) = 3
  46. fstat64(3, {st_mode=S_IFREG|0644, st_size=2601, ...}) = 0
  47. mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb729f000
  48. read(3, "# Locale name alias data base.\n#"..., 4096) = 2601
  49. read(3, "", 4096)                       = 0
  50. close(3)                                = 0
  51. munmap(0xb729f000, 4096)                = 0
  52. open("/usr/lib/locale/en/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
  53. socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
  54. ioctl(3, 0x890b, 0xbfffae40)            = 0
  55. close(3)                                = 0
  56. exit_group(0)                           = ?
  57.                                                                
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-29 20:49:31 | 显示全部楼层
Tetris兄辛苦了
看到这个,我想起UNIX网络编程上的一些东西
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, 0x890b, 0xbfffae40)            = 0
close(3)                    

我去试试,希望有作用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表