免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2349 | 回复: 12
打印 上一主题 下一主题

请教大家:我用电信专线怎样通过用redhat9做代理,让局域网内都能上网? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-23 17:03 |只看该作者 |倒序浏览
请教大家:我用电信专线怎样通过用redhat9做代理,让局域网内都能上网?我在本论坛找了很多资料,但都是关于adsl的,请大家指教,谢谢!
我的IP:
eth0:203.94.26.18
eth1:192.168.96.22

[ 本帖最后由 sncel516 于 2005-11-23 17:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-11-24 00:28 |只看该作者
用IPTABLE!!

论坛徽章:
0
3 [报告]
发表于 2005-11-24 06:44 |只看该作者
原帖由 yanjfb 于 2005-11-24 00:28 发表
用IPTABLE!!


要双网卡,查点关于把LINUX做成路由器的资料吧.
用NAT或则用SQUID把机器做成透明代理都是可以实现共享上网.

论坛徽章:
0
4 [报告]
发表于 2005-11-24 09:14 |只看该作者
原帖由 traveller2 于 2005-11-24 06:44 发表


要双网卡,查点关于把LINUX做成路由器的资料吧.
用NAT或则用SQUID把机器做成透明代理都是可以实现共享上网.

单网卡也可

论坛徽章:
1
处女座
日期:2013-08-19 15:17:06
5 [报告]
发表于 2005-11-24 14:27 |只看该作者
某人大人的Nat脚本,简单修改了一下使之符合你的情况,请参考。


  1. #!/bin/bash
  2. #
  3. # Script name: ipt_masq
  4. # A simple script for masquerading, used in Linux (kernel 2.4.x).
  5. #
  6. # Now Ready for Kernel 2.6.x  
  7. #
  8. # Copyleft 2002 by netman (netman@study-area.org).
  9. #
  10. # Redistribution of this file is permitted under the terms of
  11. # the GNU General Public License (GPL).
  12. #
  13. # Date: 2002/02/04
  14. # Version: 1.2

  15. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  16. RC_SQUID=/etc/rc.d/init.d/squid
  17. EXT_IF=eth0
  18. INT_IF=eth1
  19. ALLOWED_ICMP="0 3 3/4 4 11 12 14 16 18"
  20. DENIED_ICMP="8"

  21. #
  22. # ------------- ensure iptables ----------
  23. which iptables &>/dev/null || {
  24. echo
  25. echo "$(basename $0): iptables program is not found."
  26. echo " Please install the program first."
  27. echo
  28. exit 1
  29. }
  30. # ------------- disable ipchains ----------
  31. lsmod | grep ipchains &>/dev/null && {
  32. echo "Disabling ipchains..."
  33. rmmod ipchains &>/dev/null
  34. }

  35. # ------------- modules -----------
  36. echo "Loading modules..."
  37. modprobe ip_tables &>/dev/null || {
  38. echo -n "$(basename $0): loading ip_tables module failure."
  39. echo " Please Fix it!"
  40. exit 3
  41. }
  42. for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_*.ko
  43. do
  44. module=$(basename $file)
  45. modprobe ${module%.*} &>/dev/null
  46. done
  47. for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_*.ko
  48. do
  49. module=$(basename $file)
  50. modprobe ${module%.*} &>/dev/null
  51. done


  52. # ------------- ipforwarding -----------
  53. echo "Turning on IP forwarding..."
  54. echo "1" > /proc/sys/net/ipv4/ip_forward

  55. # ------------- anti spoofing -----------
  56. echo "Turning on anti-spoofing..."
  57. for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
  58. echo "1" > $file
  59. done

  60. # ------------- flushing ----------
  61. echo "Cleaning up..."
  62. iptables -F -t filter
  63. iptables -X -t filter
  64. iptables -Z -t filter
  65. iptables -F -t nat
  66. iptables -X -t nat
  67. iptables -Z -t nat

  68. # ------------- policies -------------
  69. echo "Setting up policies to ACCEPT..."
  70. iptables -P INPUT ACCEPT
  71. iptables -P OUTPUT ACCEPT
  72. iptables -P FORWARD ACCEPT
  73. iptables -t nat -P PREROUTING ACCEPT
  74. iptables -t nat -P POSTROUTING ACCEPT
  75. iptables -t nat -P OUTPUT ACCEPT

  76. # ------------- ICMP -------------
  77. echo "Creating icmpfilter chain..."
  78. iptables -N icmpfilter
  79. for TYPE in $DENIED_ICMP; do
  80. iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type $TYPE -j DROP

  81. done
  82. for TYPE in $ALLOWED_ICMP; do
  83. iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type $TYPE -j ACCEPT
  84. done

  85. # ------------- block -------------
  86. echo "Creating block chain..."
  87. iptables -N block
  88. iptables -A block -m conntrack  --ctstate ESTABLISHED,RELATED -j ACCEPT
  89. iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
  90. iptables -A block -m state --state NEW,INVALID -i $EXT_IF -j DROP
  91. iptables -A block -m state --state NEW -i ! $EXT_IF -j ACCEPT
  92. iptables -A block -j DROP

  93. # ------------- filter -------------
  94. echo "Filtering packets..."
  95. iptables -A INPUT -j icmpfilter
  96. iptables -A INPUT -j block
  97. iptables -A FORWARD -j icmpfilter
  98. iptables -A FORWARD -j block

  99. # ------------- masq -------------
  100. echo "Masquerading internel network..."
  101. # if you have a dynamically ip for EXT_IF , Use it as follow.
  102. #iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE  
  103. # if you have static ip for EXT_IF , USE it as follow
  104. iptables -t nat -A POSTROUTING -s 192.168.1.22/24  -j SNAT --to-source 203.94.26.18

  105. # ------------- tproxy -------------
  106. $RC_SQUID status | grep pid &>/dev/null && {
  107. echo "Enabling transparent proxy..."
  108. INT_IP=$(ifconfig | grep "$INT_IF " -A 1  
  109. | awk '/inet/ {print $2}' | sed -e s/addr://)
  110. if [ -z "$INT_IP" ]; then
  111. echo
  112. echo "$(basename $0): there is no IP found on $INT_IF."
  113. echo " Please make sure $INT_IF is setup properly."
  114. echo
  115. exit 3
  116. fi
  117. iptables -t nat -A PREROUTING -d $INT_IP -i $INT_IF  
  118. -p tcp -m tcp --dport 80 -j ACCEPT
  119. iptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp  
  120. --dport 80 -j REDIRECT --to-ports 3128
  121. }
  122. exit 0
  123. ## EOS
复制代码

[ 本帖最后由 missing-cn 于 2005-11-24 14:30 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2005-11-24 18:38 |只看该作者
请问missing-cn :
这些脚本都是写在一个文件里吗?应该写在哪个文件中呢?
多谢missing-cn 指点!

论坛徽章:
0
7 [报告]
发表于 2005-11-25 09:49 |只看该作者
难道只有这一种办法吗,这样做是不是太复杂了
不能像adsl那样简单明了吗?

论坛徽章:
0
8 [报告]
发表于 2005-11-25 16:59 |只看该作者
把下面的内容放到一个文件中(可执行文件),然后执行就可以:


#!/bin/bash
# llzqq, 02/28/2004

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

echo 1 >/proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -Z


iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

论坛徽章:
0
9 [报告]
发表于 2005-11-25 17:34 |只看该作者
少了
iptables -t nat -F
iptables -t nat -X
^_^

论坛徽章:
0
10 [报告]
发表于 2005-11-25 22:59 |只看该作者
原帖由 llzqq 于 2005-11-25 16:59 发表
把下面的内容放到一个文件中(可执行文件),然后执行就可以:


#!/bin/bash
# llzqq, 02/28/2004

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

echo 1 >/proc/sys/net/ipv4/ip_forward

iptables ...

这样就可以让内网和外网互通了吗,lo 也可以这样用的吗,如果用IPROUTE配是不是要简单些呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP