IP 访问限制, 怎么通过技术手段突破限制

2018-05-24 23:30:06 +08:00
 gancl

公司的 oracle 数据库做了 IP 访问限制, 我的电脑 IP 有访问权限,我的电脑的虚拟机 IP 没有访问权限,怎么通过技术手段突破限制?

我尝试虚拟机访问我的电脑用 nginx 做转发,没用:

stream { upstream oraracCd {
hash $remote_addr consistent; server 172.17.23.11:1521;
} }

通过改虚拟机的 IP 为我的电脑的 IP 这样操作太麻烦. 用 ngrok 是否可行? 有其他的技术手段吗?

4105 次点击
所在节点    Docker
7 条回复
NeilWang
2018-05-24 23:40:18 +08:00
虚拟机网络使用 NAT 模式的话,访问网络就是用的宿主机的 ip
gancl
2018-05-24 23:51:08 +08:00
@NeilWang 其实是我虚拟机里的 Docker 去访问 oracle, docker 也要设置为 NAT 模式吧?
WordTian
2018-05-24 23:52:53 +08:00
本机弄个 socks 服务,虚拟机连接到本机的 socks 代理
MonoLogueChi
2018-05-25 02:41:01 +08:00
用主机给虚拟机开代理,或者是使用 Nat 模式。虚拟机设置成 Nat 模式应该就可以了吧,docker 应该无所谓了,因为虚拟机已经在主机了内网了,docker 再怎么连也不会跳出内网吧。
gancl
2018-05-26 09:30:36 +08:00
g@ubuntu:~$ ifconfig
br-bd918c09d16c Link encap:Ethernet HWaddr 02:42:f2:35:bd:70
inet addr:172.19.0.1 Bcast:172.19.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:f2ff:fe35:bd70/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:52 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3472 (3.4 KB) TX bytes:5199 (5.1 KB)

docker0 Link encap:Ethernet HWaddr 02:42:8c:2f:8f:90
inet addr:172.18.0.1 Bcast:172.18.255.255 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

ens33 Link encap:Ethernet HWaddr 00:0c:29:31:f4:03
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2056 errors:0 dropped:0 overruns:0 frame:0
TX packets:2056 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:161192 (161.1 KB) TX bytes:161192 (161.1 KB)

veth6edec6e Link encap:Ethernet HWaddr ea:00:1d:b9:d4:48
inet6 addr: fe80::e800:1dff:feb9:d448/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:756 (756.0 B) TX bytes:6633 (6.6 KB)

veth7b3cb4b Link encap:Ethernet HWaddr c6:69:f0:4f:45:3e
inet6 addr: fe80::c469:f0ff:fe4f:453e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:4988 (4.9 KB)

vethcfc6c98 Link encap:Ethernet HWaddr ce:e2:68:4c:c2:c0
inet6 addr: fe80::cce2:68ff:fe4c:c2c0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3444 (3.4 KB) TX bytes:6150 (6.1 KB)


@MonoLogueChi
@NeilWang
转成 NAT 后连 Docker 里的 80 端口都访问不了, 也 ping 不了; 我的电脑地址是 172.17.32.250, 虚拟机里的 IP 怎么不是你们说的 IP 一样,而是变成了 172.19.0.1; docker 的 IP 也和虚拟机的不一样,是 172.18.0.1
要怎么解决?
NeilWang
2018-05-26 12:48:25 +08:00
@gancl 这样是正常的,虽然 3 个 ip 不一样,但虚拟机或者 docker 访问网络时,数据出物理网卡时带的 ip 是你物理主机的 ip,至于你现在访问不了 docker 的 80 端口,你需要去虚拟机网络设置里去设置 NAT 端口映射。你可以去搜索一下“虚拟机 nat 端口映射”
gancl
2018-05-27 10:21:57 +08:00
@MonoLogueChi
@NeilWang 感谢,完美解决!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/457588

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX