![외부에서 내 로컬 컴퓨터 양식에 대한 액세스 권한 부여](https://rvso.com/image/1502877/%EC%99%B8%EB%B6%80%EC%97%90%EC%84%9C%20%EB%82%B4%20%EB%A1%9C%EC%BB%AC%20%EC%BB%B4%ED%93%A8%ED%84%B0%20%EC%96%91%EC%8B%9D%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%95%A1%EC%84%B8%EC%8A%A4%20%EA%B6%8C%ED%95%9C%20%EB%B6%80%EC%97%AC.png)
저는 OS X El Capitain 10.11.5를 사용하고 있습니다.
웹 서버를 로컬에서 실행하고 외부에서 액세스 권한을 부여하려고 합니다.
인터넷에 접속하기 위해 Wi-Fi 스팟을 사용합니다.
내 Mac 컴퓨터에서는 방화벽을 사용할 수 없습니다.
ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether f4:5c:89:90:96:7d
inet6 fe80::f65c:89ff:fe90:967d%en0 prefixlen 64 scopeid 0x4
inet 10.37.44.92 netmask 0xfffffc00 broadcast 10.37.47.255
nd6 options=1<PERFORMNUD>
media: autoselect
status: active
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
options=60<TSO4,TSO6>
ether 6a:00:01:80:39:90
media: autoselect <full-duplex>
status: inactive
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
options=60<TSO4,TSO6>
ether 6a:00:01:80:39:91
media: autoselect <full-duplex>
status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 06:5c:89:90:96:7d
media: autoselect
status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
ether 9a:46:fc:f3:8c:a2
inet6 fe80::9846:fcff:fef3:8ca2%awdl0 prefixlen 64 scopeid 0x8
nd6 options=1<PERFORMNUD>
media: autoselect
status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether f6:5c:89:09:14:00
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x2
member: en1 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 5 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 6 priority 0 path cost 0
nd6 options=1<PERFORMNUD>
media: <unknown type>
status: inactive
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255
보시다시피 Wi-Fi 네트워크 내부의 내 컴퓨터 IP 주소는 다음과 같습니다.10.37.44.92
동시에 Google은 내 공개 IP가77.88.196.39
이것이 웹 서버를 실행하는 방법입니다.
dmac:solidus-sample dob$ rails s -p 3001
=> Booting WEBrick
=> Rails 4.2.7 application starting in development on http://localhost:3001
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-08-09 15:32:15] INFO WEBrick 1.3.1
[2016-08-09 15:32:15] INFO ruby 2.2.4 (2015-12-16) [x86_64-darwin15]
[2016-08-09 15:32:15] INFO WEBrick::HTTPServer#start: pid=16366 port=3001
내 웹 서버에 다음 방법으로 액세스하고 싶습니다.http://77.88.196.39:3001. 하지만 지금은 접근이 불가능합니다.
내가 무슨 짓을 한?
이런 방식으로 웹 서버를 실행하면(-b 키는 바인딩을 의미합니다):
rails s -p 3001 -b 10.37.44.92
http://10.37.44.92:3001
동일한 Wi-Fi 네트워크에 있는 모든 컴퓨터에서 액세스할 수 있습니다 .
그러나 인터넷에서 웹 서버에 성공적으로 액세스할 수 없습니다.
감사해요.
답변1
외부에서 실행하려면 포트 포워딩이 필요하다고 생각합니다. 예를 들어 귀하의 주소는 다음과 같습니다.192.168.1.21외부에 웹 서버를 제공하려면 공용 IP를 확인해야 합니다.77.88.196.39.따라서 개방형 웹을 위해서는 개방형 웹을 열어야 합니다.포트 80라우터에서. 포트 포워딩이 있는 라우터 설정 찾기 창으로 이동해야 합니다. 또는 일부는 그렇게 생각합니다. 다음으로 지역 주소를 입력하세요.192.168.1.21포트 80을 추가하고 저장을 클릭하십시오. 이제 웹이 외부에서도 실행 가능해야 합니다. 라우터에 액세스할 수 없는 경우 네트워크 관리자에게 문의하세요.
귀하의 경우, 라우터에서 3001 포트를 열어야 합니다