# ifconfig gif0 create
# ifconfig gif0 internal1 internal2
# ifconfig gif0 tunnel external1 external2
- 什么是
internal 1
IPinternal 2
?在自由软件中 - 什么是
external 1
IPexternal 2
?在自由软件中
我怎样才能知道我的公共IP?
答案1
注意:这假设您在两个站点上运行正常的网络,并且希望在它们之间建立隧道。
ifconfig -a inet
在每台端点机器上运行。您应该看到所有接口的 IP 地址以及一些其他信息。
与我的类似当地的结尾:
lan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
inet 192.168.0.1 netmask 0xffffffc0 broadcast 192.168.0.254
wan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
inet 192.0.2.163 netmask 0xffffff00 broadcast 255.255.255.255
所以我的internal
IP是192.168.0.1,并且external
是192.0.2.163。
上偏僻的连接结束时我执行相同的命令并看到:
lan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
inet 192.168.4.1 netmask 0xffffffc0 broadcast 192.168.4.254
wan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
inet 198.51.100.44 netmask 0xffffff00 broadcast 255.255.255.255
所以远端的地址internal
是 192.168.4.1 和external
198.51.100.44。
在我的当地的结束我会跑:
ifconfig gif0 create 192.168.0.1 192.168.4.1
ifconfig gif0 tunnel 192.0.2.163 198.51.100.44
上偏僻的结束我会跑
ifconfig gif0 create 192.168.4.1 192.168.0.1
ifconfig gif0 tunnel 198.51.100.44 192.0.2.163
此配置只是临时的,一旦重新启动机器,配置就会丢失。为了使此配置永久存在,我将/etc/rc.conf
在我最喜欢的编辑器中打开并添加以下内容:
在我的当地的结尾:
network_interfaces="auto"
gif_interfaces="gif0"
gifconfig_gif0="192.0.2.163 198.51.100.44"
ifconfig_gif0"="inet 192.168.0.1/30 192.168.4.1"
在我的偏僻的结尾:
network_interfaces="auto"
gif_interfaces="gif0"
gifconfig_gif0="198.51.100.44 192.0.2.163"
ifconfig_gif0"="inet 192.168.4.1/30 192.168.0.1"
更多注意事项:
- 这不会设置路由。这两台计算机将知道如何相互通信,而不是其他。如果你想要路由,你必须配置静态路由,或者配置一个路由守护进程,比如
routed
(FreeBSD 内置的 RIP 守护进程)。 - 这不会设置加密。这只是隧道本身。如果你想要加密,你必须设置 IPSec,我强烈建议使用
ipsec-tools
安全端口;其中包括racoon
一个 IKE 守护进程。 - 虽然在技术上可以通过 NAT 防火墙运行隧道,但我强烈建议避免这种情况。这会带来比其价值更多的麻烦。关于 NAT 的另一点注意,如果您使用 FreeBSD 的防火墙之一,您可以避免该 NAT,所以这不是问题。此外,如果您启用了防火墙才能实现上述功能,则必须打开特定端口和协议。