Làm cách nào để chuyển tiếp một cổng có thể truy cập được trên thế giới trên máy Mac của tôi?


1

Tôi nhận ra rằng có rất nhiều thông tin về chuyển tiếp cổng, nhưng đây là tình huống cụ thể của tôi .

Tôi cần sử dụng Remote in (thông qua VNC) cho máy Mac của mình. Theo mặc định, máy chủ Mac Remote Sharing lắng nghe trên cổng 5900. Điều đó sẽ ổn và tốt ngoại trừ công ty của tôi đang chặn cổng 5900 kết nối đến!

Tuy nhiên, nó đang cho phép cổng 3389. Vì vậy, những gì tôi đang cố gắng làm là thiết lập nó để tôi có thể lắng nghe các kết nối trên cổng 3389 và chuyển tiếp chúng tới 5900.

Đây là những gì tôi đã thử: ssh 127.0.0.1 -L3389:127.0.0.1:5900

Điều này không hoàn toàn làm những gì tôi muốn bởi vì sau đó chỉ các kết nối từ 127.0.0.1 sẽ được chấp nhận trên cổng 3389.

 netstat -an | egrep 'Proto|LISTEN'
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp6       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  127.0.0.1.3389         *.*                    LISTEN

Tôi cần lắng nghe từ thế giới, *trên cảng 3389. Làm thế nào tôi có thể thực hiện điều này?


Thông thường phần mềm VNC cho phép bạn nói với nó cổng nào để nghe trong cài đặt. Không có lựa chọn cho điều đó?
Colyn1337

Bạn đã viết, rằng tường lửa của công ty bạn sẽ chặn 5900. Đi hay đến? Và từ đâu đến nơi bạn sẽ kết nối? Máy Mac của bạn ở đâu? Và bạn có thể kết nối với bất kỳ dịch vụ nào trên máy Mac không? Bạn sẽ thiết lập kết nối với máy Mac từ đâu? Và loại cổng nào bạn có thể sử dụng đi?
UsersUser

Câu trả lời:


1

Câu hỏi của bạn hơi ngắn về các chi tiết cụ thể, hơi khó để đưa ra câu trả lời trực tiếp mà không biết một số điều:

  1. Bạn có thể kết nối trên cổng VNC mặc định từ bên ngoài - nói từ nhà của một người bạn, nơi công việc của bạn không chặn bạn? Nếu vậy, bạn có thể thay đổi cổng mà VNC lắng nghe thành 3389 và kiểm tra điều đó. Làm cách nào để thay đổi chia sẻ màn hình / số cổng VNC mặc định trên Mac OS X?

  2. Lệnh ssh mà bạn đề cập sẽ cần được chạy từ máy CONNECTING chứ không phải "máy chủ". Vì vậy, bạn sẽ chạy:

    ssh address.of.your.mac -L9999:127.0.0.1:5900
    

    và sau đó kết nối VNC với localhost: 9999 trên máy khách của bạn. Tôi sử dụng 9999 làm ví dụ vì có thể nó không được sử dụng và 5900 có thể là nếu máy khách của bạn là máy Mac và có thể là nếu máy khách của bạn là Windows.

Để rõ ràng: bạn sẽ cần có khả năng ssh vào máy Mac của bạn từ công việc, số sau -L là cổng bạn kết nối trên máy kết nối (localhost), 127.0.0.1:5900 là nơi VNC đã nghe trên (từ xa) Mac.

  1. Tôi cũng sẽ nghĩ về VPN để khắc phục các hạn chế trong công việc (và vì sự an toàn). OpenVPN có thể dễ dàng chạy trên cổng 443 (HTTPS) có thể được cho phép và thậm chí sẽ hoạt động trên máy chủ proxy nếu công việc của bạn hạn chế truy cập web theo cách đó. Thiết lập điều đó không quá khó nhưng nằm ngoài phạm vi của câu hỏi này.

1

Thay vì chuyển tiếp cổng, bạn có thể thay đổi cổng launchdlắng nghe các kết nối VNC trên. ( launchdlắng nghe thay mặt screensharingdvà khởi chạy screensharingdkhi có nỗ lực kết nối).

screensharingd là máy chủ VNC mặc định được bật trong OS X. Nếu bạn đang sử dụng Apple Remote Desktop (còn gọi là ARD, "Quản lý từ xa"), các hướng dẫn này có thể cần phải được sửa đổi một chút.

Chỉnh sửa /System/Library/LaunchDaemons/com.apple.screensharing.plist

Tìm cặp khóa / giá trị này:

<key>SockServiceName</key>
<string>vnc-server</string>

Và thay đổi nó thành này:

<key>SockServiceName</key>
<string>3389</string>

Sau đó, có lẽ bạn sẽ cần phải khởi động lại hoặc sử dụng launchctlđể buộc launchdtải lại bản gốc đó.

Sau đó, trong ứng dụng khách VNC của bạn, chỉ định cổng 3389. Ví dụ: ứng dụng khách VNC tích hợp của OS X sử dụng URL, do đó bạn có thể trao nó vnc://username:password@host.example.com:3389/. Hoặc rời khỏi username:passwordđể bạn được nhắc nhở.

Caveat lector: Tôi đã không thử điều này bản thân mình, vì vậy hãy tự chịu rủi ro. Cân nhắc tạo một bản sao lưu của tệp plist đó trước khi chỉnh sửa nó, vì vậy thật dễ dàng để đưa nó trở lại như cũ.


0

Bạn có thể thử -Dtùy chọn với ssh là cổng chuyển tiếp động. Vì vậy, điều này có thể trông giống như:ssh -D 3389 yourAccount@yourDomain.com

Tôi đã làm điều này ngày hôm qua và tôi nhớ lại điều này từ bộ nhớ nhưng đây là những điều cơ bản của nó. Khi lệnh này hoạt động, bạn chỉ cần nhập mật khẩu của mình và định cấu hình ứng dụng của bạn để nghe trên cổng được chỉ định - 3389 trong trường hợp của bạn với 127.0.0.1 làm địa chỉ IP.

Tôi nghĩ rằng điều này tạo ra một loại proxy SOCKS bằng ssh.

: D


0

Tôi nghĩ rằng bạn đang tìm kiếm một cái gì đó như thế này , Mac tương đương với iptables.

Tôi không có máy Mac, vì vậy tôi không thể tự kiểm tra cái này, nhưng tôi khuyên bạn nên dùng thử

sudo ipfw add fwd 127.0.0.1,5900 tcp from any to 127.0.0.1 dst-port 3389

Lưu ý rằng dường như có nhiều cú pháp khác nhau ipfwcó thể xử lý ( 127.0.0.1,3389127.0.0.1 3389có vẻ như chúng cũng sẽ hoạt động từ những gì tôi có thể tìm thấy). Tôi sẽ liên kết bạn với trang FreeBSD, nhưng với tư cách là một người dùng mới, tôi chưa có đủ đại diện cho điều đó: còi :.

Ngoài ra, vì ipfwđã không được chấp nhận, bạn có thể muốn thử pfctlnhư được mô tả ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.