分页: 1 / 1

在美国购买了个虚拟主机,它有公网ip地址,如何让我家中的电脑可以通过它上互联网?

发表于 : 2014-08-31 22:53
openbsdsir008
我在http://www.cndns.com上面买了一个79元的主机,美国机房,centos系统。
家里是adsl光纤拨号上网,家中用openbsd做网关,内网有一台电脑。openbsd 配置hostname.pppoe0 , 修改pf.conf
match on pppoe0 scrub (max-mss 1440)
match out on pppoe0 inet from $lan_net to any nat-to (pppoe0:0) 。




目的:内网的电脑上google.com的时候,通过美国的虚拟主机,然后再访问google.com。


要实现这样的目的,有多少种方法?







{我知道的方法有一个:
   在内网的电脑上> 1. ssh -L 3128:127.0.0.1:3128 root@美国虚拟主机ip :美国的虚拟主机上运行squid服务\
2. 打开firefox,设置代理服务器为127.0.0.1 端口为3128
}



openvpn 可以实现吗?
ip tunnel 可以实现吗?    Linux kernel supports 3 tunnel types: IPIP (IPv4 in IPv4), GRE (IPv4/IPv6 over IPv4) and SIT (IPv6 over IPv4)  ??
                  ip tunnel 和 ipsec 有什么关系?我都晕了

Re: 在美国购买了个虚拟主机,它有公网ip地址,如何让我家中的电脑可以通过它上互联网?

发表于 : 2014-09-01 14:32
bsdplus
比较简单、直接的就是用你提到的办法。
OpenVPN不太熟悉,好像也可以通过它的点对点VPN tunnel的功能来实现。有兴趣的话可以自己建两个虚拟机测试一下。

IP tunel一般是用来做协议转换/封装。

比如,你有一台只有IPv6地址的主机,想和另外一台IPv6主机进行通讯,但是两台主机之间的路由器不支持IPv6,这个时候你可以在两边主机的默认网关之间搭建一个IPv4的tunnel,然后把IPv6的数据包封装在IPv4数据包里来通过两台主机间的路由器,从而实现通过IPv4路由来传递IPv6数据包。

IPSec则是一套安全协议,主要是用于为IP数据包提供加密/安全服务,本身不提供proxy功能。可以使用它的end-to-end tunel模式建立一个通道。但是这个和用SSH端口转发来建立一个通道是差不多的。如果只有自己用,SSH端口转发更简单一点~

Re: 在美国购买了个虚拟主机,它有公网ip地址,如何让我家中的电脑可以通过它上互联网?

发表于 : 2014-09-01 20:29
openbsdsir008
家中的网关openbsd主机上   
#ifconfig gif0 create
#ifconfig gif0 tunnel “adsl获取到的公网ip” “美国虚拟主机公网ip“
#ifconfig gif0 inet 192.168.1.1 192.168.0.1 netmask 255.255.255.255
美国虚拟主机centos上
#ip tunnel add ipiptun mode ipip local “美国虚拟主机公网ip“ remote “adsl获取到的公网ip” ttl 64 dev eth0
#ip addr add dev ipiptun 192.168.0.1 peer 192.168.1.1/32
#ip link set dev ipiptun up


这样设置完成之后,
可以在美国虚拟主机centos上  
#ping 192.168.1.1 通的
在家中openbsd主机上
#ping 192.168.0.1 通的

然后如何设置路由信息?
使家中网关openbsd下,的内网电脑访问google.com时,数据包先经过美国虚拟主机,然后再访问google.com。
之后回来的数据包,经过美国虚拟主机,再到家中的网关openbsd主机上,然后到家中内网的电脑上,然后就能上google.com了。