荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Pazu (海之魂), 信区: Linux
标  题: 配置NEWS服务器IN REDHAT
发信站: BBS 荔园晨风站 (Sat Oct  9 17:51:33 1999), 转信

在 RedHat 中配置 News Server

作者:伏建军

  估计大家都看了很多中英文的News
Howto,结果一般是看得稀里糊涂(我自己就是这样的感受:-),一是那些文档年代"久远"
,二是针对从源代码编译开始的情况,三它们不是针对Linux来讲的.装了RH5.0后我发现
配置INN(我认为C-News软件已经"死"了)已经是很简单的事情了,下面把我的一些粗浅的
经验介绍给大家.欢迎指正并完善。

一、基本概念

  关于UUNet,有很多文章和书籍介绍,这里没必要重复了.值得一提的是,你的新闻
服务器并不一定要连入UUnet,完全可以配置为一个Stand Alone的News Server.在新闻
服务器上读,写(post)文章的用户称为Reader, Reader与Server之间是按照C/S方式来
做的.当然可以把你的新闻服务器与其他服务器相连,相互转发文章.一个新闻服务器向
另一个服务器转发文章,则第一个服务器被称为feeder.所以要记住news feed的行为发
生在两个服务器之间.

  我们假定你的新闻服务器的名字为news.foo.com.cn(当然域名就应该是foo.com.cn),
在安装RedHat 5.0时选择了INN包并允许开机启动innd,这时RedHat已经自动完成了大部
分配置,你根本不需要去编译源码,也就找不到config.dist,Install.ms等文件.安装
完成后相关文件在以下目录:
  /usr/sbin/innd
  /usr/sbin/inndstart
  /etc/rc.d/rc.news
  /etc/news/*
  /etc/crontab
  /usr/bin/inews
  /usr/bin/rnews
  /usr/lib/news/*
  /usr/lib/news/bin/*
  /var/lib/news/
  /var/lib/news/send-nntp
  /var/lib/news/send-uucp
  /var/spool/news/
  /var/log/news/
  /usr/doc/inn-1.7/
  /usr/doc/inn-1.7/Install.*
  /usr/doc/inn-1.7/FAQ/

二、先把news.foo.com.cn配置为单独的新闻服务器

  首先要提醒一点,凡是owner是news.news的文件,你要切换成news身份去操作
(RH5.0已经给你建立了news组和用户,你可以去看一下/etc/group和/etc/passwd文件)
---发出su news命令即可.其实对于/etc/news/下的文件可以用root身份直接编辑
 (我用joe编辑没有问题).

1. 配置/etc/news/inn.conf

  如果你安装时正确地配置了网络,这一步可以省去,缺省如下:
  ## inn.conf -- inn configuration ....
  ## ......
  domain: foo.com.cn
  organization: foo company news site
  server: localhost
  这样一般就可以了,若要了解细节,用"man inn.conf"看一下,照猫画虎是个好方法.

2. 配置/etc/news/nnrp.access

  事实上INN包是一组程序来完成News的工作,而不是innd一个人做所有的事,但innd
总揽全局,除了send-nntp/send-uucp由cron带动以外,其他的工作都由innd完成或发起,
nnrpd就是一例. nnrpd完成news readers的服务.它的配置文件是

   /etc/news/nnrp.access,

控制哪些站点可以访问,是否带密码访问这个新闻服务器.修改这个文件无需重新启动
innd.缺省值如下:
  # Default to no access
  *:: -no- : -no- :!*
  #allow access from localhost
  localhost:Read Post:::*
  这时你添加几行,允许更多的人访问你的站点,如加入:
  stdin:Read Post:::*
  *.foo.com.cn:Read Post:::*
  注意每一行最后应没有空格.用"man nnrp.access"了解更详细的情况.配置完以后
用"/usr/lib/news/bin/inncheck nnrp.access"检查你的配置是否正确:出错则有提示
,正确反而什么都没有.

3. 添加新闻组

  站点上有哪些新闻组由/var/lib/news/active文件确定.你可以手工编辑这个文件
来添加新闻组(不要忘了切换到news身份哟),active文件的格式用"manactive"去看吧.
推荐的方法是用"ctlinnd newgroup
chinese.comp.XXX(orwhatever)"ctlinnd这个命令很有用,后面可能还会介绍.比如你
手工该了active文件,你就需要用ctlinnd reload active "modify active"通知innd
更新新闻组条目.

4. 监管某个新闻组

  在active配置文件里,最后一项可以是y,n,m,j,x,=XXX.XXX,当它是m时,就
表示此新闻组受到监管.监管的意思就是news reader发表到这个组的文章先发到监管人
的Email信箱,监管人审查后再把它贴到新闻组上去.它的配置文件是

        /etc/news/moderators

这个功能用得比较少,用man看一下就行了(一路man下去,配置就完成了:-).

5. 启动innd

  有些不重要的配置文件如/etc/news/overview.fmt无须修改,使用缺省就很好.负责
启动innd的是/etc/rc.d/rc.news,但RH5.0已经把innd启动,所以这时你无须做任何事,
你的news站点基本正常运行了,用/usr/lib/news/bin/inncheck -v
看一下,应该没有错误.现在要做的就是配置客户端(reader)软件来测试一下.配置
netscape没什么好讲的,如果用tin来读文章,需要注意几点:

   a、如果以本地方式读,需要增加一个连接
        ln -s /var/lib/news/active /usr/lib/news/active
   b、如果以nntp方式读(tin -r),需要设定一个环境变量
        export NNTPSERVER=news.foo.com.cn或生成文件/etc/nntpserver.
   c、tin的资源文件有$HOME/.newsrc,$HOME/.tin/tinrc等,用ls -a看。

三、与其他的news站点相互"灌水"

  例如与news.freesoft.cei.gov.cn.为了简化说明,我们假定只能由freesoft
向news.foo.com.cn站点feed文章,即freesoft是你的上级(当你的News服务器可以
向freesoft发文章时,你们的关系是对等的,无所谓上级下级).进行这样的配置首
先要上级同意你的请求(否则他不修改他的配置:-).

1. 获取上级的active和newsgroups

  su news #切换为news身份
  1) telnet news.freesoft.cei.gov.cn
  nntp > /tmp/newsgroups
  list newsgroups
  quit
  2) telnet news.freesoft.cei.gov.cn nntp > /tmp/active
  list active
  quit
  3)编辑这两个文件,把你所想要的加入到你的/var/lib/news/active或
  newsgroups文件中.然后用
  ctlinnd reload active "modify"更新.
  (用inncheck active先检查一下是好习惯).

2. 允许上级站点feed文章到你的站点

  修改配置文件/etc/news/hosts.nntp,加入一行
  news.freesoft.cei.gov.cn:
  即可,用manhosts.nntp了解细剑琾asswd.nntp等
  视情况作出修改(如需要密码等).
  发命令ctlinnd reload hosts.nntp
  "modify hosts.nntp"通知innd更新.
  相应地,在news.freesoft.cei.gov.cn
  上也要加入news.foo.com.cn
  更新innd:ctlinnd reload hosts.nntp "modify hosts.nntp"

3. 配置/etc/news/newsfeeds

  这个配置文件是最复杂的了,参数很多,好多我也没搞清楚(没耐性仔细看完
    mannewsfeeds:-).
  它主要管news server之间feed的方式及distribution.feed的方式一般有三种:
  实时的nntplink/send-nntp/send-uucp.
  nntplink又有logfile/channel/stdin几种方式,不过我在我的机器上居然没有
    找到nntplink这个程序!
  我对uucp不了解,估计现在用得也不太多. nntp的传送方式又有几种:

  1) 常规方式:pipe
  2) xbatch,类似于uucp的传送方式,
       batch- >compress- >transmission- >uncompress- >unbatch
  3) streaming NNTP(streaming vs pipeling)看来配置newsfeeds真是烦死了,
       不过我们还是用简单的方式来做,复杂的情况留到以后再说.
     比如说在freesoft上的newsfeeds上加入一行:
 ?  foo:chinese.comp.*:Tf,Wnm:news.foo.com.cn
     然后用ctlinnd reload newsfeeds
?   ?"modify newsfeeds"更新innd缓冲区.

4. 配置/etc/news/nntpsend.ctl

  这个文件主要是为在newsfeeds中要求nntpsend的条目配置batch和innxmit参数.
  所以要用man innxmit要查看各种参数的细节.在我们这种情况,需要在freesoft的
    nntpsend.ctl上加入一行:
  foo:news.foo.com.cn::-S -t300
  ^^^注意这个"foo"就是newsfeeds里
  的sitename,必须要对应起来.配置完成后把这个文件拷贝到/var/lib/news/下
    (要把它的owner改为news.news).

5. 配置/etc/crontab

  先用/usr/lib/news/bin/inncheck -v检查没有错误.
  然后用手工发命令/var/lib/news/send-nntp foo news.foo.com.cn
  一切正常的话可以修改crontab了.我注意到在
    /etc/cron.hourly/inn-cron-nntpsend里已经调用了send-nntp,你只需要加入参数
    foo news.foo.com.cn就行了. 运行一段时间没有问题的话,可以掉过头来你做
    freesoft的feeder,在你这一端进行相应的配置,你们就可以相互转信了.如果你
    与UseNet的一台newsserver连上的话,你应该也是UseNet的一员了.
  这些只是我数天来的粗浅经验,并未严格检验,很多参数,格式没有讲.我只是把
    我的思路提出来,希望对你有所帮助,或抛砖引玉.

  注:网络的配置不当会引起一些希奇古怪的问题,如我用tin -r不能post文章,但用
     netscape却可以,发现hostname返回的是news而不是news.foo.com.cn,
     修改/etc/sysconfig/network就好了.难道netscape自己会send-ihave?


--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.138]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店