এল ক্যাপিটনে পোর্ট-ফরওয়ার্ডিং করার আধুনিক উপায় কী? (এগিয়ে 80 থেকে 8080 পোর্ট)


56

পুরানো ইউটিলিটি ipfwম্যাক ওএস এক্স এর সাম্প্রতিক সংস্করণগুলিতে নিরুৎসাহিত হয়েছিল এবং এখন এল ক্যাপিটান থেকে চলে গেছে।

এল ক্যাপিটনে পোর্ট ফরওয়ার্ডিং করার আধুনিক উপায় কী?

আমি কেবল 80 বন্দরটি 8080 পোর্টে এগিয়ে যেতে চাই।


একটি উত্তর গ্রহণ করুন।
এফ্রেন

উত্তর:


79

সমস্ত পোর্ট 80 ট্র্যাফিক 8080 পোর্টে ফরোয়ার্ড করতে আপনি টার্মিনাল কমান্ড লাইন থেকে নিম্নলিখিতটি প্রবেশ করতে পারেন।

echo "
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -

Https://salferrarello.com/mac-pfctl-port-forwarding/ থেকে নেওয়া


1
নিখুঁতভাবে কাজ করেছেন!
অনুপম জৈন

17
এবং উল্লিখিত নিবন্ধ থেকে, এটি সরাতে sudo pfctl -F all -f /etc/pf.conf, এবং আপনার বর্তমান বন্দর ফরওয়ার্ডিং বিধি প্রদর্শন করতে,sudo pfctl -s nat
ব্র্যাড পার্কস

4
মনে রাখবেন যে এই সমাধানটি বিধিগুলি যোগ করে না তবে আগে লোড হওয়া অন্য কোনও নিয়মের পরিবর্তে pf.confফাইল সহ
ইরেন্ড্রোস

36

এল ক্যাপিটেনে পোর্টগুলি ফরোয়ার্ড করার আধুনিক উপায়টি ব্যবহার করছে pf। সমস্ত বন্দর 80 এর নীচে উদাহরণ হিসাবে 80 অনুরোধগুলি একই হোস্টের 8080 পোর্টে ফরোয়ার্ড করা হয়। আপনার প্রয়োজন অনুসারে পুনর্নির্দেশগুলি সামঞ্জস্য করুন।

  1. /Private/etc/pf.anchors এ অ্যাংকার ফাইল org.user.forwarding তৈরি করুন

    sudo touch /private/etc/pf.anchors/org.user.forwarding
    

    নিম্নলিখিত বিষয়বস্তু এবং একটি পিছনে ফাঁকা লাইন সহ

    rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    rdr pass on en1 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    

    অথবা

    rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    
  2. /Private/etc/pf.conf ফাইলটি সংশোধন করুন তবে একটি ফাঁকা রেখা রেখে দিন

    মূল ফাইল:

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    

    প্রতি

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    rdr-anchor "org.user.forwarding"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    load anchor "org.user.forwarding" from "/etc/pf.anchors/org.user.forwarding"
    
  3. কোনও ত্রুটি নেই তা নিশ্চিত করার জন্য আপনার অ্যাঙ্কর ফাইলটি পার্স করুন এবং পরীক্ষা করুন:

    sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding
    
  4. এখন থেকে / সিস্টেমে / লাইব্রেরি / লঞ্চডেমোনস / কম.এপল.পিএফটিএল.প্লেস্ট সংশোধন করুন

    <array>
        <string>pfctl</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
    

    প্রতি

    <array>
        <string>pfctl</string>
        <string>-e</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
    

    এটি সম্পাদন করতে আপনাকে সিস্টেম ইন্টিগ্রিটি সুরক্ষা অক্ষম করতে হবে। ফাইল সম্পাদনা করার পরে পুনরায় সক্ষম এসআইপি। রিবুট করার পরে আপনার ম্যাক পিএফ সক্ষম হবে (এটি বিকল্প বিকল্প)।

    বিকল্পভাবে আপনি এখানে নিজের উত্তরটির অনুরূপ নিজের লঞ্চ ডেমন তৈরি করতে পারেন: ইন্টারনেট ভাগ করে নেওয়া ছাড়া ইন্টারনেট ভাগ করতে সার্ভার 5.0.15 ব্যবহার করে

সিস্টেম আপডেট বা আপগ্রেড করার পরে উপরের কিছু মূল ফাইলগুলি প্রতিস্থাপন করা হতে পারে এবং আপনাকে সমস্ত পরিবর্তন পুনরায় প্রয়োগ করতে হবে।

আপনি যদি বিভিন্ন ইন্টারফেসের সামনে অগ্রসর করতে চান তবে আপনাকে এটি /etc/sysctl.conf এ সক্ষম করতে হবে:

net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

7
এগুলি করার জন্য কেন কোনও সরল আদেশ নেই? এটা এখন খুব জটিল।
ডাঃকুইনটল

@ ক্লোনামথ - এটি কাজ করে এবং আমি 127.0.0.1 ইত্যাদিতে পোর্ট এক্সকে পোর্ট ওয়াইডে ফরোয়ার্ড করতে পারি, তবে আমি আমার উইন্ডোজ ভিএমগুলিতে প্যারালগুলি ডেস্কটপে চলমান পোর্টগুলি ফরোয়ার্ড করতে পারছি না, কোনও ধারণা? আমার প্রশ্নটি এখানে স্ট্যাকওভারফ্লো.com
সুধীর এন

সমান্তরাল ডেস্কটপে চলছে এমন ভিএম-তে পোর্ট ফরওয়ার্ড করার সময় কাজ করছে বলে মনে হচ্ছে না
সুধীর এন

@ সুধির আপনি আপনার নতুন প্রশ্নের সাথে সফলভাবে লিঙ্ক করেননি। সুরক্ষার সতর্কতা হিসাবে ডিফল্টরূপে একটি সমান্তরাল ভিএম নেটওয়ার্কের কাছে দৃশ্যমান নয়। আপনি ভিএম দৃশ্যমান করতে ভিএম এর কনফিগারেশনে একটি সেটিংস পরিবর্তন করতে পারেন। এবং মনে রাখবেন, pingনেটওয়ার্ক সমস্যাগুলি সনাক্তকরণে আপনার বন্ধু কি?
বাসিল বাউরক

1
@ suhir প্রশ্ন: apple.stackexchange.com/questions/262708/...
Efren

3

@ থেকে সমাধান সম্প্রসারণ সাল-ferrarello উত্তর, আমি দুই সুপার মৌলিক শেল স্ক্রিপ্ট করার জন্য তৈরি করা সক্ষম বা অক্ষম পুনঃনির্দেশ ইতিমধ্যে বিদ্যমান এন্ট্রি compromising ছাড়া মধ্যে pf

I. প্রথমে আপনার ইতিমধ্যে কী এন্ট্রি রয়েছে তা সন্ধান করুন:

sudo pfctl -s nat

আমার ফলাফলটি ছিল:

No ALTQ support in kernel
ALTQ related functions disabled
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all

আমাদের আগ্রহী কি প্রকৃত এন্ট্রি তাই প্রথম দুটি তথ্য লাইন বাদ দিন।

২। enable.shস্ক্রিপ্ট তৈরি করুন :

#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
sudo pfctl -s nat

এর পরে প্রথম দুটি লাইন হ'ল echoএন্ট্রিগুলি যা ইতিমধ্যে ছিল। তৃতীয় লাইনটি নতুন পুনর্নির্দেশের সাথে রয়েছে - এই ক্ষেত্রে 80 থেকে 8080 sudo pfctl -s natchanges শেষে আমরা পরিবর্তনগুলি প্রয়োগ করা হয়েছে কিনা তা দেখতে কল করব ।

তৃতীয়। disable.shস্ক্রিপ্ট তৈরি করুন :

enable.shআমরা স্ক্রিপ্ট তৈরি করতে অনুরূপ , তবে 80-> 8080 ছাড়াই পুনঃনির্দেশিত না হলেও পূর্ববর্তী বিদ্যমান বিদ্যমান এন্ট্রি সহ:

#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
" | sudo pfctl -ef -
sudo pfctl -s nat
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.