เข้าถึงหน้าเว็บผ่าน ssh


14

ฉันจำเป็นต้องเข้าถึง IEEE xplore แต่ฉันไม่มีสิทธิ์ดาวน์โหลดออกจากสถาบัน

ฉันสามารถเข้าสู่เซิร์ฟเวอร์ของสถาบันผ่าน ssh

ดังนั้นฉันจะเข้าถึง IEEE xplore ผ่าน Institute เซิร์ฟเวอร์ผ่าน ssh ได้อย่างไร

ฉันได้ค้นหาวิธีแก้ไขแล้วมีคำตอบเดียว:

ssh -L 8080:localhost:80 user@remoteserver

แล้วเขาก็พูดว่า:

ตอนนี้ให้เบราว์เซอร์โลคัลของคุณไปที่ localhost: 8080 ควรส่งต่อไปยัง localhost: 80 ในเซิร์ฟเวอร์ระยะไกล ### แต่ฉันยังไม่รู้วิธีกำหนดค่าแล็ปท็อปของฉันโดยใช้ chrome

ฉันขอขอบคุณความช่วยเหลือของคุณเป็นอย่างมาก!


อ้างอิงที่ดีที่นี่: help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
ThorSummoner

คำตอบ:


23

วิธีแรก:

เรียกใช้อุโมงค์ SSH

ในการเริ่มต้นอุโมงค์ SSH ของคุณเพียงแค่เปิด terminal และเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลของคุณผ่าน SSH ด้วยค่าสถานะต่อไปนี้:

ssh -D 8080 -C -N username@example.com

ท่องเว็บด้วย SSH Tunnel ของคุณ (Chrome)

ตอนนี้เรามาเริ่มท่องเว็บโดยใช้อุโมงค์ SSH ใหม่ของเรา

  • เปิด Google Chrome
  • เลือกไอคอนประแจที่ด้านบนขวา
  • เลือก 'การตั้งค่า'
  • เลือก 'แสดงการตั้งค่าขั้นสูง ... '
  • เลือก 'เปลี่ยนการตั้งค่าพร็อกซี ... '
  • เลือก 'SOCKS Proxy'
  • ป้อน '127.0.0.1′
  • ป้อนพอร์ต '8080′
  • บันทึกการเปลี่ยนแปลงโดยเลือก 'ตกลง'

ค้นหา 'my ip' ของ Google และดูที่อยู่ IP ของคุณตอนนี้

วิธีนี้จะเปิด SSH tunnel ของเราที่พอร์ต 8080 และกำหนดเส้นทางการรับส่งข้อมูลทั้งหมด (อย่างปลอดภัย) ผ่านเซิร์ฟเวอร์ที่ example.com

ออกจากอุโมงค์ SSH

หากต้องการออกจากอุโมงค์ SSH เพียงปิดการใช้งานพร็อกซี SOCKS ภายในเบราว์เซอร์ของคุณ

แหล่ง

วิธีที่สอง:

คุณสามารถทำได้อย่างง่ายดายโดยใช้ Shellinabox

ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบ Universe Repository แล้ว

ติดตั้ง

 $ sudo apt-get install openssl shellinabox

การกำหนดค่า Shellinabox

โดยค่าเริ่มต้น shellinaboxd ฟังบนพอร์ต TCP 4200 บน localhost ในระหว่างการติดตั้งใบรับรอง SSL ที่ลงนามด้วยตนเองใหม่ที่สร้างขึ้นโดยอัตโนมัติภายใต้“ / var / lib / shellinabox” เพื่อใช้โปรโตคอล HTTPS

$ sudo vi /etc/default/shellinabox

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125 --localhost-only"

หมายเหตุ: แทนที่ ip 172.16.25.125 ด้วยของคุณ

เริ่มต้น Shellinabox

เมื่อคุณตั้งค่าเสร็จแล้วคุณสามารถเริ่มบริการได้

$ sudo service shellinaboxd start

ตรวจสอบ Shellinabox

ตอนนี้เรามาตรวจสอบว่า Shellinabox ทำงานบนพอร์ต 4200 โดยใช้คำสั่ง“ netstat”

$ sudo netstat -nap | grep shellinabox
or
# netstat -nap | grep shellinabox

tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN      12274/shellinaboxd

ตอนนี้เปิดเว็บเบราว์เซอร์ของคุณแล้วไปที่ 'https: // "Your-IP-Adress: 6175"' คุณควรเห็นเทอร์มินัล SSH บนเว็บ เข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่านของคุณและคุณควรจะแสดงพร้อมเปลือกของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

แหล่ง


@ththus ขอบคุณมากคำตอบของคุณยอดเยี่ยม ฉันแก้ปัญหาด้วยวิธีแก้ปัญหาที่ 1
ulyssis2

@ ulyssis2 คุณได้รับการต้อนรับอย่างมากเพื่อน
Maythux

@kimerseen ยินดีต้อนรับเพื่อน
Maythux

@ Maythux คุณสามารถช่วยฉันด้วยคำถามของฉันaskubuntu.com/questions/987626/shell-in-a-box-session-closed
MiHawk

2

ตัวอย่างที่คุณให้นั้นถูกต้อง แต่ค่อนข้างทำให้เข้าใจผิด สิ่งนี้น่าจะใช้ได้:

ssh -L 8080:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

ตัวอย่างเช่นพิจารณากล่องระยะไกลที่ใช้ ssh ที่สามารถเข้าถึงหน้าเว็บนี้ซึ่งฉันต้องการดูในเครื่อง:

http://192.168.1.2/index.html

ในการสร้างช่องทางในกล่องท้องถิ่นของฉันที่อนุญาตให้ฉันเรียกดูไปยังหน้าระยะไกลนั้นฉันเรียกใช้ในเครื่อง:

ssh -L 8080:192.168.1.2:80 user@remote-ssh-server

และจากนั้นในเว็บเบราว์เซอร์ฉันไปที่:

http: // localhost: 8080 / index.html

หากคุณต้องการ (หรือต้องการ) เพื่อละเว้นตัวระบุพอร์ตคุณจะต้องเปิดช่องสัญญาณเป็นรูทเนื่องจาก 80 เป็นพอร์ต "สิทธิพิเศษ" (<1024):

sudo ssh -L 80:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

จากนั้นคุณสามารถไปที่ท้องถิ่น:

http: //localhost/index.html

ไม่ต้องการการกำหนดค่าอื่น ๆ

อนึ่งนี่ใช้งานได้กับโฮสต์เดียวที่คุณต้องการดูในเครื่องเท่านั้น หากคุณต้องการดูเพิ่มเติมคุณต้องเปิดช่องสัญญาณเพิ่มเติมบนพอร์ตอื่นหรือตรวจสอบโซลูชันอื่น ๆ ที่ช่องสัญญาณร้องขอสำหรับโฮสต์ระยะไกลทั้งหมดผ่านพร็อกซี

นี่เป็นการใช้งานครั้งที่ 3 ของ-Lสวิตช์จากman ssh:

 -L [bind_address:]port:host:hostport
 -L [bind_address:]port:remote_socket
 -L local_socket:host:hostport
 -L local_socket:remote_socket
         Specifies that connections to the given TCP port or Unix socket on the
         local (client) host are to be forwarded to the given host and port, or
         Unix socket, on the remote side.  This works by allocating a socket to
         listen to either a TCP port on the local side, optionally bound to the
         specified bind_address, or to a Unix socket.  Whenever a connection is
         made to the local port or socket, the connection is forwarded over the
         secure channel, and a connection is made to either host port hostport,
         or the Unix socket remote_socket, from the remote machine.

         Port forwardings can also be specified in the configuration file.  Only
         the superuser can forward privileged ports.  IPv6 addresses can be
         specified by enclosing the address in square brackets.

         By default, the local port is bound in accordance with the GatewayPorts
         setting.  However, an explicit bind_address may be used to bind the
         connection to a specific address.  The bind_address of “localhost”
         indicates that the listening port be bound for local use only, while an
         empty address or ‘*’ indicates that the port should be available from
         all interfaces.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.